Autogenerated HTML docs for v2.2.0-rc0
diff --git a/RelNotes/2.2.0.txt b/RelNotes/2.2.0.txt index 826b0e4..741e14e 100644 --- a/RelNotes/2.2.0.txt +++ b/RelNotes/2.2.0.txt
@@ -39,6 +39,9 @@ * "git difftool" learned an option to stop feeding paths to the diff backend when it exits with a non-zero status. + * "git grep" allows to paint (or not paint) partial matches on + context lines whenshowing "grep -C<num>" output in color. + * "log --date=iso" uses a slight variant of ISO 8601 format that is made more human readable. A new "--date=iso-strict" option gives datetime output that is more strictly conformant. @@ -89,6 +92,9 @@ document, whose contents have been updated to more modern Git practice. + * On the "git svn" front, work to reduce memory consumption and + to improve handling of mergeinfo progresses. + Performance, Internal Implementation, etc.
diff --git a/config.txt b/config.txt index 8212897..7a3294d 100644 --- a/config.txt +++ b/config.txt
@@ -885,7 +885,11 @@ `linenumber`;; line number prefix (when using `-n`) `match`;; - matching text + matching text (same as setting `matchContext` and `matchSelected`) +`matchContext`;; + matching text in context lines +`matchSelected`;; + matching text in selected lines `selected`;; non-matching text in selected lines `separator`;;
diff --git a/git-add.html b/git-add.html index 9c46bb5..c46d212 100644 --- a/git-add.html +++ b/git-add.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-add(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -770,20 +768,20 @@ <div class="paragraph"><p>The "index" holds a snapshot of the content of the working tree, and it is this snapshot that is taken as the contents of the next commit. Thus after making any changes to the working directory, and before running -the commit command, you must use the <tt>add</tt> command to add any new or +the commit command, you must use the <code>add</code> command to add any new or modified files to the index.</p></div> <div class="paragraph"><p>This command can be performed multiple times before a commit. It only adds the content of the specified file(s) at the time the add command is run; if you want subsequent changes included in the next commit, then -you must run <tt>git add</tt> again to add the new content to the index.</p></div> -<div class="paragraph"><p>The <tt>git status</tt> command can be used to obtain a summary of which +you must run <code>git add</code> again to add the new content to the index.</p></div> +<div class="paragraph"><p>The <code>git status</code> command can be used to obtain a summary of which files have changes that are staged for the next commit.</p></div> -<div class="paragraph"><p>The <tt>git add</tt> command will not add ignored files by default. If any -ignored files were explicitly specified on the command line, <tt>git add</tt> +<div class="paragraph"><p>The <code>git add</code> command will not add ignored files by default. If any +ignored files were explicitly specified on the command line, <code>git add</code> will fail with a list of ignored files. Ignored files reached by directory recursion or filename globbing performed by Git (quote your globs before the shell) will be silently ignored. The <em>git add</em> command can -be used to add ignored files with the <tt>-f</tt> (force) option.</p></div> +be used to add ignored files with the <code>-f</code> (force) option.</p></div> <div class="paragraph"><p>Please see <a href="git-commit.html">git-commit(1)</a> for alternative ways to add content to a commit.</p></div> </div> @@ -797,16 +795,16 @@ </dt> <dd> <p> - Files to add content from. Fileglobs (e.g. <tt>*.c</tt>) can + Files to add content from. Fileglobs (e.g. <code>*.c</code>) can be given to add all matching files. Also a - leading directory name (e.g. <tt>dir</tt> to add <tt>dir/file1</tt> - and <tt>dir/file2</tt>) can be given to update the index to + leading directory name (e.g. <code>dir</code> to add <code>dir/file1</code> + and <code>dir/file2</code>) can be given to update the index to match the current state of the directory as a whole (e.g. - specifying <tt>dir</tt> will record not just a file <tt>dir/file1</tt> - modified in the working tree, a file <tt>dir/file2</tt> added to - the working tree, but also a file <tt>dir/file3</tt> removed from + specifying <code>dir</code> will record not just a file <code>dir/file1</code> + modified in the working tree, a file <code>dir/file2</code> added to + the working tree, but also a file <code>dir/file3</code> removed from the working tree. Note that older versions of Git used - to ignore removed files; use <tt>--no-all</tt> option if you want + to ignore removed files; use <code>--no-all</code> option if you want to add modified or new files but ignore removed ones. </p> </dd> @@ -871,8 +869,8 @@ to review the difference before adding modified contents to the index. </p> -<div class="paragraph"><p>This effectively runs <tt>add --interactive</tt>, but bypasses the -initial command menu and directly jumps to the <tt>patch</tt> subcommand. +<div class="paragraph"><p>This effectively runs <code>add --interactive</code>, but bypasses the +initial command menu and directly jumps to the <code>patch</code> subcommand. See “Interactive mode” for details.</p></div> </dd> <dt class="hdlist1"> @@ -902,7 +900,7 @@ <pathspec>. This removes as well as modifies index entries to match the working tree, but adds no new files. </p> -<div class="paragraph"><p>If no <pathspec> is given when <tt>-u</tt> option is used, all +<div class="paragraph"><p>If no <pathspec> is given when <code>-u</code> option is used, all tracked files in the entire working tree are updated (old versions of Git used to limit the update to the current directory and its subdirectories).</p></div> @@ -923,7 +921,7 @@ entry. This adds, modifies, and removes index entries to match the working tree. </p> -<div class="paragraph"><p>If no <pathspec> is given when <tt>-A</tt> option is used, all +<div class="paragraph"><p>If no <pathspec> is given when <code>-A</code> option is used, all files in the entire working tree are updated (old versions of Git used to limit the update to the current directory and its subdirectories).</p></div> @@ -956,8 +954,8 @@ Record only the fact that the path will be added later. An entry for the path is placed in the index with no content. This is useful for, among other things, showing the unstaged content of - such files with <tt>git diff</tt> and committing them with <tt>git commit - -a</tt>. + such files with <code>git diff</code> and committing them with <code>git commit + -a</code>. </p> </dd> <dt class="hdlist1"> @@ -977,7 +975,7 @@ If some files could not be added because of errors indexing them, do not abort the operation, but continue adding the others. The command shall still exit with non-zero status. - The configuration variable <tt>add.ignoreErrors</tt> can be set to + The configuration variable <code>add.ignoreErrors</code> can be set to true to make this the default behaviour. </p> </dd> @@ -1008,7 +1006,7 @@ <div class="sect1"> <h2 id="_configuration">Configuration</h2> <div class="sectionbody"> -<div class="paragraph"><p>The optional configuration variable <tt>core.excludesfile</tt> indicates a path to a +<div class="paragraph"><p>The optional configuration variable <code>core.excludesfile</code> indicates a path to a file containing patterns of file names to exclude from git-add, similar to $GIT_DIR/info/exclude. Patterns in the exclude file are used in addition to those in info/exclude. See <a href="gitignore.html">gitignore(5)</a>.</p></div> @@ -1020,16 +1018,16 @@ <div class="ulist"><ul> <li> <p> -Adds content from all <tt>*.txt</tt> files under <tt>Documentation</tt> directory +Adds content from all <code>*.txt</code> files under <code>Documentation</code> directory and its subdirectories: </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git add Documentation/\*.txt</tt></pre> +<pre><code>$ git add Documentation/\*.txt</code></pre> </div></div> -<div class="paragraph"><p>Note that the asterisk <tt>*</tt> is quoted from the shell in this +<div class="paragraph"><p>Note that the asterisk <code>*</code> is quoted from the shell in this example; this lets the command include the files from -subdirectories of <tt>Documentation/</tt> directory.</p></div> +subdirectories of <code>Documentation/</code> directory.</p></div> </li> <li> <p> @@ -1037,11 +1035,11 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git add git-*.sh</tt></pre> +<pre><code>$ git add git-*.sh</code></pre> </div></div> <div class="paragraph"><p>Because this example lets the shell expand the asterisk (i.e. you are listing the files explicitly), it does not consider -<tt>subdir/git-foo.sh</tt>.</p></div> +<code>subdir/git-foo.sh</code>.</p></div> </li> </ul></div> </div> @@ -1058,12 +1056,12 @@ and type return, like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> *** Commands *** +<pre><code> *** Commands *** 1: status 2: update 3: revert 4: add untracked 5: patch 6: diff 7: quit 8: help - What now> 1</tt></pre> + What now> 1</code></pre> </div></div> -<div class="paragraph"><p>You also could say <tt>s</tt> or <tt>sta</tt> or <tt>status</tt> above as long as the +<div class="paragraph"><p>You also could say <code>s</code> or <code>sta</code> or <code>status</code> above as long as the choice is unique.</p></div> <div class="paragraph"><p>The main command loop has 6 subcommands (plus help and quit).</p></div> <div class="dlist"><dl> @@ -1073,16 +1071,16 @@ <dd> <p> This shows the change between HEAD and index (i.e. what will be - committed if you say <tt>git commit</tt>), and between index and + committed if you say <code>git commit</code>), and between index and working tree files (i.e. what you could stage further before - <tt>git commit</tt> using <tt>git add</tt>) for each path. A sample output + <code>git commit</code> using <code>git add</code>) for each path. A sample output looks like this: </p> <div class="listingblock"> <div class="content"> -<pre><tt> staged unstaged path +<pre><code> staged unstaged path 1: binary nothing foo.png - 2: +403/-35 +1/-1 git-add--interactive.perl</tt></pre> + 2: +403/-35 +1/-1 git-add--interactive.perl</code></pre> </div></div> <div class="paragraph"><p>It shows that foo.png has differences from HEAD (but that is binary so line count cannot be shown) and there is no @@ -1111,15 +1109,15 @@ like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> staged unstaged path +<pre><code> staged unstaged path 1: binary nothing foo.png -* 2: +403/-35 +1/-1 git-add--interactive.perl</tt></pre> +* 2: +403/-35 +1/-1 git-add--interactive.perl</code></pre> </div></div> -<div class="paragraph"><p>To remove selection, prefix the input with <tt>-</tt> +<div class="paragraph"><p>To remove selection, prefix the input with <code>-</code> like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Update>> -2</tt></pre> +<pre><code>Update>> -2</code></pre> </div></div> <div class="paragraph"><p>After making the selection, answer with an empty line to stage the contents of working tree files for selected paths in the index.</p></div> @@ -1156,7 +1154,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>y - stage this hunk +<pre><code>y - stage this hunk n - do not stage this hunk q - quit; do not stage this hunk or any of the remaining ones a - stage this hunk and all later hunks in the file @@ -1169,12 +1167,12 @@ K - leave this hunk undecided, see previous hunk s - split the current hunk into smaller hunks e - manually edit the current hunk -? - print help</tt></pre> +? - print help</code></pre> </div></div> <div class="paragraph"><p>After deciding the fate for all hunks, if there is any hunk that was chosen, the index is updated with the selected hunks.</p></div> <div class="paragraph"><p>You can omit having to type return here, by setting the configuration -variable <tt>interactive.singlekey</tt> to <tt>true</tt>.</p></div> +variable <code>interactive.singlekey</code> to <code>true</code>.</p></div> </dd> <dt class="hdlist1"> diff @@ -1191,7 +1189,7 @@ <div class="sect1"> <h2 id="_editing_patches">EDITING PATCHES</h2> <div class="sectionbody"> -<div class="paragraph"><p>Invoking <tt>git add -e</tt> or selecting <tt>e</tt> from the interactive hunk +<div class="paragraph"><p>Invoking <code>git add -e</code> or selecting <code>e</code> from the interactive hunk selector will open a patch in your editor; after the editor exits, the result is applied to the index. You are free to make arbitrary changes to the patch, but note that some changes may have confusing results, or
diff --git a/git-am.html b/git-am.html index eeeea98..ec23b31 100644 --- a/git-am.html +++ b/git-am.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-am(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -792,7 +790,7 @@ </dt> <dd> <p> - Add a <tt>Signed-off-by:</tt> line to the commit message, using + Add a <code>Signed-off-by:</code> line to the commit message, using the committer identity of yourself. </p> </dd> @@ -804,7 +802,7 @@ </dt> <dd> <p> - Pass <tt>-k</tt> flag to <em>git mailinfo</em> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>). + Pass <code>-k</code> flag to <em>git mailinfo</em> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>). </p> </dd> <dt class="hdlist1"> @@ -812,7 +810,7 @@ </dt> <dd> <p> - Pass <tt>-b</tt> flag to <em>git mailinfo</em> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>). + Pass <code>-b</code> flag to <em>git mailinfo</em> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>). </p> </dd> <dt class="hdlist1"> @@ -820,10 +818,10 @@ </dt> <dd> <p> - With <tt>--keep-cr</tt>, call <em>git mailsplit</em> (see <a href="git-mailsplit.html">git-mailsplit(1)</a>) + With <code>--keep-cr</code>, call <em>git mailsplit</em> (see <a href="git-mailsplit.html">git-mailsplit(1)</a>) with the same option, to prevent it from stripping CR at the end of - lines. <tt>am.keepcr</tt> configuration variable can be used to specify the - default behaviour. <tt>--no-keep-cr</tt> is useful to override <tt>am.keepcr</tt>. + lines. <code>am.keepcr</code> configuration variable can be used to specify the + default behaviour. <code>--no-keep-cr</code> is useful to override <code>am.keepcr</code>. </p> </dd> <dt class="hdlist1"> @@ -865,21 +863,21 @@ </dt> <dd> <p> - Pass <tt>-u</tt> flag to <em>git mailinfo</em> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>). + Pass <code>-u</code> flag to <em>git mailinfo</em> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>). The proposed commit log message taken from the e-mail is re-coded into UTF-8 encoding (configuration variable - <tt>i18n.commitencoding</tt> can be used to specify project’s + <code>i18n.commitencoding</code> can be used to specify project’s preferred encoding if it is not UTF-8). </p> <div class="paragraph"><p>This was optional in prior versions of git, but now it is the -default. You can use <tt>--no-utf8</tt> to override this.</p></div> +default. You can use <code>--no-utf8</code> to override this.</p></div> </dd> <dt class="hdlist1"> --no-utf8 </dt> <dd> <p> - Pass <tt>-n</tt> flag to <em>git mailinfo</em> (see + Pass <code>-n</code> flag to <em>git mailinfo</em> (see <a href="git-mailinfo.html">git-mailinfo(1)</a>). </p> </dd> @@ -1026,8 +1024,8 @@ <p> When a patch failure occurs, <msg> will be printed to the screen before exiting. This overrides the - standard message informing you to use <tt>--continue</tt> - or <tt>--skip</tt> to handle the failure. This is solely + standard message informing you to use <code>--continue</code> + or <code>--skip</code> to handle the failure. This is solely for internal use between <em>git rebase</em> and <em>git am</em>. </p> </dd> @@ -1078,7 +1076,7 @@ </ul></div> <div class="paragraph"><p>is taken as the beginning of a patch, and the commit log message is terminated before the first occurrence of such a line.</p></div> -<div class="paragraph"><p>When initially invoking <tt>git am</tt>, you give it the names of the mailboxes +<div class="paragraph"><p>When initially invoking <code>git am</code>, you give it the names of the mailboxes to process. Upon seeing the first patch that does not apply, it aborts in the middle. You can recover from this in one of two ways:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -1098,7 +1096,7 @@ </ol></div> <div class="paragraph"><p>The command refuses to process new mailboxes until the current operation is finished, so if you decide to start over from scratch, -run <tt>git am --abort</tt> before running the command with mailbox +run <code>git am --abort</code> before running the command with mailbox names.</p></div> <div class="paragraph"><p>Before any patches are applied, ORIG_HEAD is set to the tip of the current branch. This is useful if you have problems with multiple @@ -1110,8 +1108,8 @@ <div class="sect1"> <h2 id="_hooks">HOOKS</h2> <div class="sectionbody"> -<div class="paragraph"><p>This command can run <tt>applypatch-msg</tt>, <tt>pre-applypatch</tt>, -and <tt>post-applypatch</tt> hooks. See <a href="githooks.html">githooks(5)</a> for more +<div class="paragraph"><p>This command can run <code>applypatch-msg</code>, <code>pre-applypatch</code>, +and <code>post-applypatch</code> hooks. See <a href="githooks.html">githooks(5)</a> for more information.</p></div> </div> </div>
diff --git a/git-annotate.html b/git-annotate.html index 54353ab..0868bc3 100644 --- a/git-annotate.html +++ b/git-annotate.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-annotate(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -776,7 +774,7 @@ <dd> <p> Show blank SHA-1 for boundary commits. This can also - be controlled via the <tt>blame.blankboundary</tt> config option. + be controlled via the <code>blame.blankboundary</code> config option. </p> </dd> <dt class="hdlist1"> @@ -785,7 +783,7 @@ <dd> <p> Do not treat root commits as boundaries. This can also be - controlled via the <tt>blame.showroot</tt> config option. + controlled via the <code>blame.showroot</code> config option. </p> </dd> <dt class="hdlist1"> @@ -824,7 +822,7 @@ </p> <div class="paragraph"><p>This form will use the first line matching the given POSIX regex. If <start> is a regex, it will search from the end of -the previous <tt>-L</tt> range, if any, otherwise from the start of file. +the previous <code>-L</code> range, if any, otherwise from the start of file. If <start> is “^/regex/”, it will search from the start of file. If <end> is a regex, it will search starting at the line given by <start>.</p></div> @@ -839,7 +837,7 @@ </ul></div> <div class="paragraph"><p>If “:<regex>” is given in place of <start> and <end>, it denotes the range from the first funcname line that matches <regex>, up to the next -funcname line. “:<regex>” searches from the end of the previous <tt>-L</tt> range, +funcname line. “:<regex>” searches from the end of the previous <code>-L</code> range, if any, otherwise from the start of file. “^:<regex>” searches from the start of file.</p></div> </dd> @@ -915,7 +913,7 @@ <dd> <p> Specifies the encoding used to output author names - and commit summaries. Setting it to <tt>none</tt> makes blame + and commit summaries. Setting it to <code>none</code> makes blame output unconverted data. For more information see the discussion about encoding in the <a href="git-log.html">git-log(1)</a> manual page. @@ -930,7 +928,7 @@ changes starting backwards from the working tree copy. This flag makes the command pretend as if the working tree copy has the contents of the named file (specify - <tt>-</tt> to make the command read from the standard input). + <code>-</code> to make the command read from the standard input). </p> </dd> <dt class="hdlist1"> @@ -971,7 +969,7 @@ </dt> <dd> <p> - In addition to <tt>-M</tt>, detect lines moved or copied from other + In addition to <code>-M</code>, detect lines moved or copied from other files that were modified in the same commit. This is useful when you reorganize your program and move code around across files. When this option is given twice, @@ -984,7 +982,7 @@ alphanumeric characters that Git must detect as moving/copying between files for it to associate those lines with the parent commit. And the default value is 40. If there are more than one -<tt>-C</tt> options given, the <num> argument of the last <tt>-C</tt> will +<code>-C</code> options given, the <num> argument of the last <code>-C</code> will take effect.</p></div> </dd> <dt class="hdlist1">
diff --git a/git-apply.html b/git-apply.html index cf95f13..cf57a64 100644 --- a/git-apply.html +++ b/git-apply.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-apply(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -766,8 +764,8 @@ <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"><p>Reads the supplied diff output (i.e. "a patch") and applies it to files. -With the <tt>--index</tt> option the patch is also applied to the index, and -with the <tt>--cached</tt> option the patch is only applied to the index. +With the <code>--index</code> option the patch is also applied to the index, and +with the <code>--cached</code> option the patch is only applied to the index. Without these options, the command applies the patch only to files, and does not require them to be in a Git repository.</p></div> <div class="paragraph"><p>This command applies the patch but does not create a commit. Use @@ -802,11 +800,11 @@ </dt> <dd> <p> - Similar to <tt>--stat</tt>, but shows the number of added and + Similar to <code>--stat</code>, but shows the number of added and deleted lines in decimal notation and the pathname without abbreviation, to make it more machine friendly. For - binary files, outputs two <tt>-</tt> instead of saying - <tt>0 0</tt>. Turns off "apply". + binary files, outputs two <code>-</code> instead of saying + <code>0 0</code>. Turns off "apply". </p> </dd> <dt class="hdlist1"> @@ -835,7 +833,7 @@ </dt> <dd> <p> - When <tt>--check</tt> is in effect, or when applying the patch + When <code>--check</code> is in effect, or when applying the patch (which is the default when none of the options that disables it is in effect), make sure the patch is applicable to what the current index file records. If @@ -851,7 +849,7 @@ <p> Apply a patch without touching the working tree. Instead take the cached data, apply the patch, and store the result in the index - without using the working tree. This implies <tt>--index</tt>. + without using the working tree. This implies <code>--index</code>. </p> </dd> <dt class="hdlist1"> @@ -866,8 +864,8 @@ the patch records the identity of blobs it is supposed to apply to, and we have those blobs available locally, possibly leaving the conflict markers in the files in the working tree for the user to - resolve. This option implies the <tt>--index</tt> option, and is incompatible - with the <tt>--reject</tt> and the <tt>--cached</tt> options. + resolve. This option implies the <code>--index</code> option, and is incompatible + with the <code>--reject</code> and the <code>--cached</code> options. </p> </dd> <dt class="hdlist1"> @@ -912,11 +910,11 @@ </dt> <dd> <p> - When <tt>--numstat</tt> has been given, do not munge pathnames, + When <code>--numstat</code> has been given, do not munge pathnames, but use a NUL-terminated machine-readable format. </p> <div class="paragraph"><p>Without this option, each pathname output will have TAB, LF, double quotes, -and backslash characters replaced with <tt>\t</tt>, <tt>\n</tt>, <tt>\"</tt>, and <tt>\\</tt>, +and backslash characters replaced with <code>\t</code>, <code>\n</code>, <code>\"</code>, and <code>\\</code>, respectively, and the pathname will be enclosed in double quotes if any of those replacements occurred.</p></div> </dd> @@ -948,8 +946,8 @@ By default, <em>git apply</em> expects that the patch being applied is a unified diff with at least one line of context. This provides good safety measures, but breaks down when - applying a diff generated with <tt>--unified=0</tt>. To bypass these - checks use <tt>--unidiff-zero</tt>. + applying a diff generated with <code>--unified=0</code>. To bypass these + checks use <code>--unidiff-zero</code>. </p> <div class="paragraph"><p>Note, for the reasons stated above usage of context-free patches is discouraged.</p></div> @@ -1011,7 +1009,7 @@ be useful when importing patchsets, where you want to include certain files or directories. </p> -<div class="paragraph"><p>When <tt>--exclude</tt> and <tt>--include</tt> patterns are used, they are examined in the +<div class="paragraph"><p>When <code>--exclude</code> and <code>--include</code> patterns are used, they are examined in the order they appear on the command line, and the first match determines if a patch to each path is used. A patch to a path that does not match any include/exclude pattern is used by default if there is no include pattern @@ -1029,7 +1027,7 @@ lines if necessary. Context lines will preserve their whitespace, and they will not undergo whitespace fixing regardless of the value of the - <tt>--whitespace</tt> option. New lines will still be fixed, though. + <code>--whitespace</code> option. New lines will still be fixed, though. </p> </dd> <dt class="hdlist1"> @@ -1039,46 +1037,46 @@ <p> When applying a patch, detect a new or modified line that has whitespace errors. What are considered whitespace errors is - controlled by <tt>core.whitespace</tt> configuration. By default, + controlled by <code>core.whitespace</code> configuration. By default, trailing whitespaces (including lines that solely consist of whitespaces) and a space character that is immediately followed by a tab character inside the initial indent of the line are considered whitespace errors. </p> <div class="paragraph"><p>By default, the command outputs warning messages but applies the patch. -When <tt>git-apply</tt> is used for statistics and not applying a -patch, it defaults to <tt>nowarn</tt>.</p></div> -<div class="paragraph"><p>You can use different <tt><action></tt> values to control this +When <code>git-apply</code> is used for statistics and not applying a +patch, it defaults to <code>nowarn</code>.</p></div> +<div class="paragraph"><p>You can use different <code><action></code> values to control this behavior:</p></div> <div class="ulist"><ul> <li> <p> -<tt>nowarn</tt> turns off the trailing whitespace warning. +<code>nowarn</code> turns off the trailing whitespace warning. </p> </li> <li> <p> -<tt>warn</tt> outputs warnings for a few such errors, but applies the +<code>warn</code> outputs warnings for a few such errors, but applies the patch as-is (default). </p> </li> <li> <p> -<tt>fix</tt> outputs warnings for a few such errors, and applies the - patch after fixing them (<tt>strip</tt> is a synonym --- the tool +<code>fix</code> outputs warnings for a few such errors, and applies the + patch after fixing them (<code>strip</code> is a synonym --- the tool used to consider only trailing whitespace characters as errors, and the fix involved <em>stripping</em> them, but modern Gits do more). </p> </li> <li> <p> -<tt>error</tt> outputs warnings for a few such errors, and refuses +<code>error</code> outputs warnings for a few such errors, and refuses to apply the patch. </p> </li> <li> <p> -<tt>error-all</tt> is similar to <tt>error</tt> but shows all errors. +<code>error-all</code> is similar to <code>error</code> but shows all errors. </p> </li> </ul></div> @@ -1126,9 +1124,9 @@ Prepend <root> to all filenames. If a "-p" argument was also passed, it is applied before prepending the new root. </p> -<div class="paragraph"><p>For example, a patch that talks about updating <tt>a/git-gui.sh</tt> to <tt>b/git-gui.sh</tt> -can be applied to the file in the working tree <tt>modules/git-gui/git-gui.sh</tt> by -running <tt>git apply --directory=modules/git-gui</tt>.</p></div> +<div class="paragraph"><p>For example, a patch that talks about updating <code>a/git-gui.sh</code> to <code>b/git-gui.sh</code> +can be applied to the file in the working tree <code>modules/git-gui/git-gui.sh</code> by +running <code>git apply --directory=modules/git-gui</code>.</p></div> </dd> </dl></div> </div> @@ -1152,7 +1150,7 @@ </dt> <dd> <p> - When no <tt>--whitespace</tt> flag is given from the command + When no <code>--whitespace</code> flag is given from the command line, this configuration item is used as the default. </p> </dd> @@ -1164,12 +1162,12 @@ <div class="sectionbody"> <div class="paragraph"><p>If the patch contains any changes to submodules then <em>git apply</em> treats these changes as follows.</p></div> -<div class="paragraph"><p>If <tt>--index</tt> is specified (explicitly or implicitly), then the submodule +<div class="paragraph"><p>If <code>--index</code> is specified (explicitly or implicitly), then the submodule commits must match the index exactly for the patch to apply. If any of the submodules are checked-out, then these check-outs are completely ignored, i.e., they are not required to be up-to-date or clean and they are not updated.</p></div> -<div class="paragraph"><p>If <tt>--index</tt> is not specified, then the submodule commits in the patch +<div class="paragraph"><p>If <code>--index</code> is not specified, then the submodule commits in the patch are ignored and only the absence or presence of the corresponding subdirectory is checked and (if possible) updated.</p></div> </div>
diff --git a/git-archimport.html b/git-archimport.html index e7c24a3..334408d 100644 --- a/git-archimport.html +++ b/git-archimport.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-archimport(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -771,9 +769,9 @@ branches that have different roots, it will refuse to run. In that case, edit your <archive/branch> parameters to define clearly the scope of the import.</p></div> -<div class="paragraph"><p><em>git archimport</em> uses <tt>tla</tt> extensively in the background to access the +<div class="paragraph"><p><em>git archimport</em> uses <code>tla</code> extensively in the background to access the Arch repository. -Make sure you have a recent version of <tt>tla</tt> available in the path. <tt>tla</tt> must +Make sure you have a recent version of <code>tla</code> available in the path. <code>tla</code> must know about the repositories you pass to <em>git archimport</em>.</p></div> <div class="paragraph"><p>For the initial import, <em>git archimport</em> expects to find itself in an empty directory. To follow the development of a project that uses Arch, rerun @@ -888,7 +886,7 @@ </dt> <dd> <p> - Archive/branch identifier in a format that <tt>tla log</tt> understands. + Archive/branch identifier in a format that <code>tla log</code> understands. </p> </dd> </dl></div>
diff --git a/git-archive.html b/git-archive.html index b1ebc06..2ac02e0 100644 --- a/git-archive.html +++ b/git-archive.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-archive(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -788,7 +786,7 @@ is not given, and the output file is specified, the format is inferred from the filename if possible (e.g. writing to "foo.zip" makes the output to be in the zip format). Otherwise the output - format is <tt>tar</tt>. + format is <code>tar</code>. </p> </dd> <dt class="hdlist1"> @@ -858,7 +856,7 @@ Instead of making a tar archive from the local repository, retrieve a tar archive from a remote repository. Note that the remote repository may place restrictions on which sha1 - expressions may be allowed in <tt><tree-ish></tt>. See + expressions may be allowed in <code><tree-ish></code>. See <a href="git-upload-archive.html">git-upload-archive(1)</a> for details. </p> </dd> @@ -932,7 +930,7 @@ tar archive entries. The default is 0002, which turns off the world write bit. The special value "user" indicates that the archiving user’s umask will be used instead. See umask(2) for - details. If <tt>--remote</tt> is used then only the configuration of + details. If <code>--remote</code> is used then only the configuration of the remote repository takes effect. </p> </dd> @@ -942,23 +940,23 @@ <dd> <p> This variable specifies a shell command through which the tar - output generated by <tt>git archive</tt> should be piped. The command + output generated by <code>git archive</code> should be piped. The command is executed using the shell with the generated tar file on its standard input, and should produce the final output on its standard output. Any compression-level options will be passed to the command (e.g., "-9"). An output file with the same - extension as <tt><format></tt> will be use this format if no other + extension as <code><format></code> will be use this format if no other format is given. </p> <div class="paragraph"><p>The "tar.gz" and "tgz" formats are defined automatically and default to -<tt>gzip -cn</tt>. You may override them with custom commands.</p></div> +<code>gzip -cn</code>. You may override them with custom commands.</p></div> </dd> <dt class="hdlist1"> tar.<format>.remote </dt> <dd> <p> - If true, enable <tt><format></tt> for use by remote clients via + If true, enable <code><format></code> for use by remote clients via <a href="git-upload-archive.html">git-upload-archive(1)</a>. Defaults to false for user-defined formats, but true for the "tar.gz" and "tgz" formats. @@ -991,13 +989,13 @@ </p> </dd> </dl></div> -<div class="paragraph"><p>Note that attributes are by default taken from the <tt>.gitattributes</tt> files +<div class="paragraph"><p>Note that attributes are by default taken from the <code>.gitattributes</code> files in the tree that is being archived. If you want to tweak the way the output is generated after the fact (e.g. you committed without adding an -appropriate export-ignore in its <tt>.gitattributes</tt>), adjust the checked out -<tt>.gitattributes</tt> file as necessary and use <tt>--worktree-attributes</tt> +appropriate export-ignore in its <code>.gitattributes</code>), adjust the checked out +<code>.gitattributes</code> file as necessary and use <code>--worktree-attributes</code> option. Alternatively you can keep necessary attributes that should apply -while archiving any tree in your <tt>$GIT_DIR/info/attributes</tt> file.</p></div> +while archiving any tree in your <code>$GIT_DIR/info/attributes</code> file.</p></div> </div> </div> <div class="sect1"> @@ -1005,17 +1003,17 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)</tt> +<code>git archive --format=tar --prefix=junk/ HEAD | (cd /var/tmp/ && tar xf -)</code> </dt> <dd> <p> Create a tar archive that contains the contents of the latest commit on the current branch, and extract it in the - <tt>/var/tmp/junk</tt> directory. + <code>/var/tmp/junk</code> directory. </p> </dd> <dt class="hdlist1"> -<tt>git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz</tt> +<code>git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz</code> </dt> <dd> <p> @@ -1023,7 +1021,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz</tt> +<code>git archive --format=tar.gz --prefix=git-1.4.0/ v1.4.0 >git-1.4.0.tar.gz</code> </dt> <dd> <p> @@ -1031,7 +1029,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git archive --prefix=git-1.4.0/ -o git-1.4.0.tar.gz v1.4.0</tt> +<code>git archive --prefix=git-1.4.0/ -o git-1.4.0.tar.gz v1.4.0</code> </dt> <dd> <p> @@ -1039,7 +1037,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip >git-1.4.0.tar.gz</tt> +<code>git archive --format=tar --prefix=git-1.4.0/ v1.4.0^{tree} | gzip >git-1.4.0.tar.gz</code> </dt> <dd> <p> @@ -1048,7 +1046,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip</tt> +<code>git archive --format=zip --prefix=git-docs/ HEAD:Documentation/ > git-1.4.0-docs.zip</code> </dt> <dd> <p> @@ -1057,7 +1055,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git archive -o latest.zip HEAD</tt> +<code>git archive -o latest.zip HEAD</code> </dt> <dd> <p> @@ -1067,13 +1065,13 @@ </p> </dd> <dt class="hdlist1"> -<tt>git config tar.tar.xz.command "xz -c"</tt> +<code>git config tar.tar.xz.command "xz -c"</code> </dt> <dd> <p> Configure a "tar.xz" format for making LZMA-compressed tarfiles. - You can use it specifying <tt>--format=tar.xz</tt>, or by creating an - output file like <tt>-o foo.tar.xz</tt>. + You can use it specifying <code>--format=tar.xz</code>, or by creating an + output file like <code>-o foo.tar.xz</code>. </p> </dd> </dl></div>
diff --git a/git-bisect-lk2009.html b/git-bisect-lk2009.html index f1cb956..860d504 100644 --- a/git-bisect-lk2009.html +++ b/git-bisect-lk2009.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Fighting regressions with git bisect</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -737,7 +735,7 @@ <div id="header"> <h1>Fighting regressions with git bisect</h1> <span id="author">Christian Couder</span><br /> -<span id="email"><tt><<a href="mailto:chriscool@tuxfamily.org">chriscool@tuxfamily.org</a>></tt></span><br /> +<span id="email"><code><<a href="mailto:chriscool@tuxfamily.org">chriscool@tuxfamily.org</a>></code></span><br /> <span id="revdate">2009/11/08</span> </div> <div id="content"> @@ -894,7 +892,7 @@ configurations, M commits and T test cases, you should perform:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>N * M * T tests</tt></pre> +<pre><code>N * M * T tests</code></pre> </div></div> <div class="paragraph"><p>where N, M and T are all growing with the size your software.</p></div> <div class="paragraph"><p>So very soon it will not be possible to completely test everything.</p></div> @@ -919,17 +917,17 @@ start" like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start [BAD [GOOD...]]</tt></pre> +<pre><code>$ git bisect start [BAD [GOOD...]]</code></pre> </div></div> <div class="paragraph"><p>or they can be set using:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect bad [COMMIT]</tt></pre> +<pre><code>$ git bisect bad [COMMIT]</code></pre> </div></div> <div class="paragraph"><p>and:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect good [COMMIT...]</tt></pre> +<pre><code>$ git bisect good [COMMIT...]</code></pre> </div></div> <div class="paragraph"><p>where BAD, GOOD and COMMIT are all names that can be resolved to a commit.</p></div> @@ -937,9 +935,9 @@ user to test it, like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start v2.6.27 v2.6.25 +<pre><code>$ git bisect start v2.6.27 v2.6.25 Bisecting: 10928 revisions left to test after this (roughly 14 steps) -[2ec65f8b89ea003c27ff7723525a2ee335a2b393] x86: clean up using max_low_pfn on 32-bit</tt></pre> +[2ec65f8b89ea003c27ff7723525a2ee335a2b393] x86: clean up using max_low_pfn on 32-bit</code></pre> </div></div> <div class="paragraph"><p>Note that the example that we will use is really a toy example, we will be looking for the first commit that has a version like @@ -959,15 +957,15 @@ that have been described above. For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect bad +<pre><code>$ git bisect bad Bisecting: 5480 revisions left to test after this (roughly 13 steps) -[66c0b394f08fd89236515c1c84485ea712a157be] KVM: kill file->f_count abuse in kvm</tt></pre> +[66c0b394f08fd89236515c1c84485ea712a157be] KVM: kill file->f_count abuse in kvm</code></pre> </div></div> <div class="paragraph"><p>And after a few more steps like that, "git bisect" will eventually find a first bad commit:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect bad +<pre><code>$ git bisect bad 2ddcca36c8bcfa251724fe342c8327451988be0d is the first bad commit commit 2ddcca36c8bcfa251724fe342c8327451988be0d Author: Linus Torvalds <torvalds@linux-foundation.org> @@ -975,13 +973,13 @@ Linux 2.6.26-rc1 -:100644 100644 5cf82581... 4492984e... M Makefile</tt></pre> +:100644 100644 5cf82581... 4492984e... M Makefile</code></pre> </div></div> <div class="paragraph"><p>At this point we can see what the commit does, check it out (if it’s not already checked out) or tinker with it, for example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git show HEAD +<pre><code>$ git show HEAD commit 2ddcca36c8bcfa251724fe342c8327451988be0d Author: Linus Torvalds <torvalds@linux-foundation.org> Date: Sat May 3 11:59:44 2008 -0700 @@ -1001,16 +999,16 @@ +EXTRAVERSION = -rc1 NAME = Funky Weasel is Jiggy wit it - # *DOCUMENTATION*</tt></pre> + # *DOCUMENTATION*</code></pre> </div></div> <div class="paragraph"><p>And when we are finished we can use "git bisect reset" to go back to the branch we were in before we started bisecting:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect reset +<pre><code>$ git bisect reset Checking out files: 100% (21549/21549), done. Previous HEAD position was 2ddcca3... Linux 2.6.26-rc1 -Switched to branch 'master'</tt></pre> +Switched to branch 'master'</code></pre> </div></div> </div> <div class="sect2"> @@ -1021,7 +1019,7 @@ run" command. For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start v2.6.27 v2.6.25 +<pre><code>$ git bisect start v2.6.27 v2.6.25 Bisecting: 10928 revisions left to test after this (roughly 14 steps) [2ec65f8b89ea003c27ff7723525a2ee335a2b393] x86: clean up using max_low_pfn on 32-bit $ @@ -1047,7 +1045,7 @@ Linux 2.6.26-rc1 :100644 100644 5cf82581... 4492984e... M Makefile -bisect run success</tt></pre> +bisect run success</code></pre> </div></div> <div class="paragraph"><p>In this example, we passed "grep <em>^SUBLEVEL = 25</em> Makefile" as parameter to "git bisect run". This means that at each step, the grep @@ -1085,13 +1083,13 @@ special code 125) you could get a result like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>There are only 'skip'ped commits left to test. +<pre><code>There are only 'skip'ped commits left to test. The first bad commit could be any of: 15722f2fa328eaba97022898a305ffc8172db6b1 78e86cf3e850bd755bb71831f42e200626fbd1e0 e15b73ad3db9b48d7d1ade32f8cd23a751fe0ace 070eab2303024706f2924822bfec8b9847e4ac1b -We cannot bisect more!</tt></pre> +We cannot bisect more!</code></pre> </div></div> </div> <div class="sect2"> @@ -1100,12 +1098,12 @@ log using for example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect log > bisect_log.txt</tt></pre> +<pre><code>$ git bisect log > bisect_log.txt</code></pre> </div></div> <div class="paragraph"><p>And it is possible to replay it using:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect replay bisect_log.txt</tt></pre> +<pre><code>$ git bisect replay bisect_log.txt</code></pre> </div></div> </div> </div> @@ -1128,7 +1126,7 @@ <div class="paragraph"><p>For example if we start with a graph like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>G-Y-G-W-W-W-X-X-X-X +<pre><code>G-Y-G-W-W-W-X-X-X-X \ / W-W-B / @@ -1136,18 +1134,18 @@ \ / \ Y-Y X-X-X-X --> time goes this way -></tt></pre> +-> time goes this way -></code></pre> </div></div> <div class="paragraph"><p>where B is the "bad" commit, "G" are "good" commits and W, X, and Y are other commits, we will get the following graph after this first step:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>W-W-W +<pre><code>W-W-W \ W-W-B / -W---W</tt></pre> +W---W</code></pre> </div></div> <div class="paragraph"><p>So only the W and B commits will be kept. Because commits X and Y will have been removed by rules a) and b) respectively, and because commits @@ -1156,16 +1154,16 @@ given by:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git rev-list BAD --not GOOD1 GOOD2...</tt></pre> +<pre><code>git rev-list BAD --not GOOD1 GOOD2...</code></pre> </div></div> <div class="paragraph"><p>Also note that we don’t require the commits that are kept to be descendants of a "good" commit. So in the following example, commits W and Z will be kept:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>G-W-W-W-B +<pre><code>G-W-W-W-B / -Z-Z</tt></pre> +Z-Z</code></pre> </div></div> <div class="paragraph"><p>2) starting from the "good" ends of the graph, associate to each commit the number of ancestors it has plus one</p></div> @@ -1173,21 +1171,21 @@ and D are some parents of some "good" commits:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>A-B-C +<pre><code>A-B-C \ F-G-H / -D---E</tt></pre> +D---E</code></pre> </div></div> <div class="paragraph"><p>this will give:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>1 2 3 +<pre><code>1 2 3 A-B-C \6 7 8 F-G-H 1 2/ -D---E</tt></pre> +D---E</code></pre> </div></div> <div class="paragraph"><p>3) associate to each commit: min(X, N - X)</p></div> <div class="paragraph"><p>where X is the value associated to the commit in step 2) and N is the @@ -1195,12 +1193,12 @@ <div class="paragraph"><p>In the above example we have N = 8, so this will give:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>1 2 3 +<pre><code>1 2 3 A-B-C \2 1 0 F-G-H 1 2/ -D---E</tt></pre> +D---E</code></pre> </div></div> <div class="paragraph"><p>4) the best bisection point is the commit with the highest associated number</p></div> @@ -1219,19 +1217,19 @@ <div class="paragraph"><p>For example, for the above graph, a command like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git rev-list --bisect-all BAD --not GOOD1 GOOD2</tt></pre> +<pre><code>$ git rev-list --bisect-all BAD --not GOOD1 GOOD2</code></pre> </div></div> <div class="paragraph"><p>would output something like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>e15b73ad3db9b48d7d1ade32f8cd23a751fe0ace (dist=3) +<pre><code>e15b73ad3db9b48d7d1ade32f8cd23a751fe0ace (dist=3) 15722f2fa328eaba97022898a305ffc8172db6b1 (dist=2) 78e86cf3e850bd755bb71831f42e200626fbd1e0 (dist=2) a1939d9a142de972094af4dde9a544e577ddef0e (dist=2) 070eab2303024706f2924822bfec8b9847e4ac1b (dist=1) a3864d4f32a3bf5ed177ddef598490a08760b70d (dist=1) a41baa717dd74f1180abf55e9341bc7a0bb9d556 (dist=1) -9e622a6dad403b71c40979743bb9d5be17b16bd6 (dist=0)</tt></pre> +9e622a6dad403b71c40979743bb9d5be17b16bd6 (dist=0)</code></pre> </div></div> </div> <div class="sect2"> @@ -1244,7 +1242,7 @@ following function is maximum:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>f(X) = min(information_if_good(X), information_if_bad(X))</tt></pre> +<pre><code>f(X) = min(information_if_good(X), information_if_bad(X))</code></pre> </div></div> <div class="paragraph"><p>where information_if_good(X) is the information we get if X is good and information_if_bad(X) is the information we get if X is bad.</p></div> @@ -1265,7 +1263,7 @@ "good", so we want to say that:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>information_if_good(X) = number_of_ancestors(X) (TRUE)</tt></pre> +<pre><code>information_if_good(X) = number_of_ancestors(X) (TRUE)</code></pre> </div></div> <div class="paragraph"><p>And this is true because at step 1) b) we remove the ancestors of the "good" commits.</p></div> @@ -1273,7 +1271,7 @@ "bad", so we want to say that:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>information_if_bad(X) = number_of_descendants(X) (WRONG)</tt></pre> +<pre><code>information_if_bad(X) = number_of_descendants(X) (WRONG)</code></pre> </div></div> <div class="paragraph"><p>But this is wrong because at step 1) a) we keep only the ancestors of the bad commit. So we get more information when a commit is marked as @@ -1287,52 +1285,52 @@ commit. This means that:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>information_if_bad(X) = N - number_of_ancestors(X) (TRUE)</tt></pre> +<pre><code>information_if_bad(X) = N - number_of_ancestors(X) (TRUE)</code></pre> </div></div> <div class="paragraph"><p>where N is the number of commits in the (cleaned up) graph.</p></div> <div class="paragraph"><p>So in the end this means that to find the best bisection commits we should maximize the function:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>f(X) = min(number_of_ancestors(X), N - number_of_ancestors(X))</tt></pre> +<pre><code>f(X) = min(number_of_ancestors(X), N - number_of_ancestors(X))</code></pre> </div></div> <div class="paragraph"><p>And this is nice because at step 2) we compute number_of_ancestors(X) and so at step 3) we compute f(X).</p></div> <div class="paragraph"><p>Let’s take the following graph as an example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> G-H-I-J +<pre><code> G-H-I-J / \ A-B-C-D-E-F O \ / - K-L-M-N</tt></pre> + K-L-M-N</code></pre> </div></div> <div class="paragraph"><p>If we compute the following non optimal function on it:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>g(X) = min(number_of_ancestors(X), number_of_descendants(X))</tt></pre> +<pre><code>g(X) = min(number_of_ancestors(X), number_of_descendants(X))</code></pre> </div></div> <div class="paragraph"><p>we get:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> 4 3 2 1 +<pre><code> 4 3 2 1 G-H-I-J 1 2 3 4 5 6/ \0 A-B-C-D-E-F O \ / K-L-M-N - 4 3 2 1</tt></pre> + 4 3 2 1</code></pre> </div></div> <div class="paragraph"><p>but with the algorithm used by git bisect we get:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> 7 7 6 5 +<pre><code> 7 7 6 5 G-H-I-J 1 2 3 4 5 6/ \0 A-B-C-D-E-F O \ / K-L-M-N - 7 7 6 5</tt></pre> + 7 7 6 5</code></pre> </div></div> <div class="paragraph"><p>So we chose G, H, K or L as the best bisection point, which is better than F. Because if for example L is bad, then we will know not only @@ -1413,9 +1411,9 @@ forked of the main branch at a commit named "D" like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>A-B-C-D-E-F-G <--main +<pre><code>A-B-C-D-E-F-G <--main \ - H-I-J <--dev</tt></pre> + H-I-J <--dev</code></pre> </div></div> <div class="paragraph"><p>The commit "D" is called a "merge base" for branch "main" and "dev" because it’s the best common ancestor for these branches for a merge.</p></div> @@ -1428,7 +1426,7 @@ <div class="paragraph"><p>So we would be left with only:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>H-I-J</tt></pre> +<pre><code>H-I-J</code></pre> </div></div> <div class="paragraph"><p>But what happens if the first bad commit is "B" and if it has been fixed in the "main" branch by commit "F"?</p></div> @@ -1446,7 +1444,7 @@ be able to start bisecting using:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start dev main</tt></pre> +<pre><code>$ git bisect start dev main</code></pre> </div></div> <div class="paragraph"><p>To enable that additional nice feature, when a bisection is started and when some good commits are not ancestors of the bad commit, we @@ -1457,8 +1455,8 @@ is stopped with a message like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>The merge base BBBBBB is bad. -This means the bug has been fixed between BBBBBB and [GGGGGG,...].</tt></pre> +<pre><code>The merge base BBBBBB is bad. +This means the bug has been fixed between BBBBBB and [GGGGGG,...].</code></pre> </div></div> <div class="paragraph"><p>where BBBBBB is the sha1 hash of the bad merge base and [GGGGGG,…] is a comma separated list of the sha1 of the good commits.</p></div> @@ -1467,9 +1465,9 @@ base:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Warning: the merge base between BBBBBB and [GGGGGG,...] must be skipped. +<pre><code>Warning: the merge base between BBBBBB and [GGGGGG,...] must be skipped. So we cannot be sure the first bad commit is between MMMMMM and BBBBBB. -We continue anyway.</tt></pre> +We continue anyway.</code></pre> </div></div> <div class="paragraph"><p>where BBBBBB is the sha1 hash of the bad commit, MMMMMM is the sha1 hash of the merge base that is skipped and [GGGGGG,…] is a comma @@ -1495,7 +1493,7 @@ bisect" (or better "git bisect run"). So you should perform roughly:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>c * N * T + b * M * log2(M) tests</tt></pre> +<pre><code>c * N * T + b * M * log2(M) tests</code></pre> </div></div> <div class="paragraph"><p>where c is the number of rounds of test (so a small constant) and b is the ratio of bug per commit (hopefully a small constant too).</p></div> @@ -1523,8 +1521,8 @@ like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start BAD GOOD -$ git bisect run make</tt></pre> +<pre><code>$ git bisect start BAD GOOD +$ git bisect run make</code></pre> </div></div> </div> <div class="sect2"> @@ -1532,7 +1530,7 @@ <div class="paragraph"><p>For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect run sh -c "make || exit 125; ./my_app | grep 'good output'"</tt></pre> +<pre><code>$ git bisect run sh -c "make || exit 125; ./my_app | grep 'good output'"</code></pre> </div></div> <div class="paragraph"><p>On the other hand if you do this often, then it can be worth having scripts to avoid too much typing.</p></div> @@ -1545,7 +1543,7 @@ introduced a performance regression:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>#!/bin/sh +<pre><code>#!/bin/sh # Build errors are not what I am interested in. make my_app || exit 255 @@ -1571,7 +1569,7 @@ # It has already finished (the $pid process was no more), # and we are happy. exit 0 -fi</tt></pre> +fi</code></pre> </div></div> </div> <div class="sect2"> @@ -1745,7 +1743,7 @@ <div class="paragraph"><p>For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>...-Y-BBC-X1-X2-X3-X4-X5-X6-BFC-Z-...</tt></pre> +<pre><code>...-Y-BBC-X1-X2-X3-X4-X5-X6-BFC-Z-...</code></pre> </div></div> <div class="paragraph"><p>where we know that Y is good and BFC is bad, and where BBC and X1 to X6 are untestable.</p></div> @@ -1758,16 +1756,16 @@ <div class="paragraph"><p>For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> (BBC+BFC)-X1'-X2'-X3'-X4'-X5'-X6'-Z' +<pre><code> (BBC+BFC)-X1'-X2'-X3'-X4'-X5'-X6'-Z' / -...-Y-BBC-X1-X2-X3-X4-X5-X6-BFC-Z-...</tt></pre> +...-Y-BBC-X1-X2-X3-X4-X5-X6-BFC-Z-...</code></pre> </div></div> <div class="paragraph"><p>where commits quoted with ' have been rebased.</p></div> <div class="paragraph"><p>You can easily create such a branch with Git using interactive rebase.</p></div> <div class="paragraph"><p>For example using:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git rebase -i Y Z</tt></pre> +<pre><code>$ git rebase -i Y Z</code></pre> </div></div> <div class="paragraph"><p>and then moving BFC after BBC and squashing it.</p></div> <div class="paragraph"><p>After that you can start bisecting as usual in the new branch and you @@ -1775,7 +1773,7 @@ <div class="paragraph"><p>For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start Z' Y</tt></pre> +<pre><code>$ git bisect start Z' Y</code></pre> </div></div> <div class="paragraph"><p>If you are using "git bisect run", you can use the same manual fix up as above, and then start another "git bisect run" in the special @@ -1807,9 +1805,9 @@ <div class="paragraph"><p>With the example above that would give:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> (BBC+BFC)-X1'-X2'-X3'-X4'-X5'-X6'-Z'-... +<pre><code> (BBC+BFC)-X1'-X2'-X3'-X4'-X5'-X6'-Z'-... / -...-Y-BBC-X1-X2-X3-X4-X5-X6-BFC-Z</tt></pre> +...-Y-BBC-X1-X2-X3-X4-X5-X6-BFC-Z</code></pre> </div></div> <div class="paragraph"><p>That’s why the "git replace" command was created. Technically it stores replacements "refs" in the "refs/replace/" hierarchy. These
diff --git a/git-bisect.html b/git-bisect.html index df7e27a..d91a5a1 100644 --- a/git-bisect.html +++ b/git-bisect.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-bisect(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -762,7 +760,7 @@ on the subcommand:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git bisect help +<pre><code>git bisect help git bisect start [--no-checkout] [<bad> [<good>...]] [--] [<paths>...] git bisect bad [<rev>] git bisect good [<rev>...] @@ -771,7 +769,7 @@ git bisect visualize git bisect replay <logfile> git bisect log -git bisect run <cmd>...</tt></pre> +git bisect run <cmd>...</code></pre> </div></div> <div class="paragraph"><p>This command uses <em>git rev-list --bisect</em> to help drive the binary search process to find which change introduced a bug, given an @@ -787,29 +785,29 @@ command is as follows:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start +<pre><code>$ git bisect start $ git bisect bad # Current version is bad $ git bisect good v2.6.13-rc2 # v2.6.13-rc2 was the last version - # tested that was good</tt></pre> + # tested that was good</code></pre> </div></div> <div class="paragraph"><p>When you have specified at least one bad and one good version, the command bisects the revision tree and outputs something similar to the following:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Bisecting: 675 revisions left to test after this</tt></pre> +<pre><code>Bisecting: 675 revisions left to test after this</code></pre> </div></div> <div class="paragraph"><p>The state in the middle of the set of revisions is then checked out. You would now compile that kernel and boot it. If the booted kernel works correctly, you would then issue the following command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect good # this one is good</tt></pre> +<pre><code>$ git bisect good # this one is good</code></pre> </div></div> <div class="paragraph"><p>The output of this command would be something similar to the following:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Bisecting: 337 revisions left to test after this</tt></pre> +<pre><code>Bisecting: 337 revisions left to test after this</code></pre> </div></div> <div class="paragraph"><p>You keep repeating this process, compiling the tree, testing it, and depending on whether it is good or bad issuing the command "git bisect good" @@ -823,20 +821,20 @@ the original HEAD (i.e., to quit bisecting), issue the following command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect reset</tt></pre> +<pre><code>$ git bisect reset</code></pre> </div></div> <div class="paragraph"><p>By default, this will return your tree to the commit that was checked -out before <tt>git bisect start</tt>. (A new <tt>git bisect start</tt> will also do +out before <code>git bisect start</code>. (A new <code>git bisect start</code> will also do that, as it cleans up the old bisection state.)</p></div> <div class="paragraph"><p>With an optional argument, you can return to a different commit instead:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect reset <commit></tt></pre> +<pre><code>$ git bisect reset <commit></code></pre> </div></div> -<div class="paragraph"><p>For example, <tt>git bisect reset HEAD</tt> will leave you on the current -bisection commit and avoid switching commits at all, while <tt>git bisect -reset bisect/bad</tt> will check out the first bad revision.</p></div> +<div class="paragraph"><p>For example, <code>git bisect reset HEAD</code> will leave you on the current +bisection commit and avoid switching commits at all, while <code>git bisect +reset bisect/bad</code> will check out the first bad revision.</p></div> </div> <div class="sect2"> <h3 id="_bisect_visualize">Bisect visualize</h3> @@ -844,15 +842,15 @@ command during the bisection process:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect visualize</tt></pre> +<pre><code>$ git bisect visualize</code></pre> </div></div> -<div class="paragraph"><p><tt>view</tt> may also be used as a synonym for <tt>visualize</tt>.</p></div> +<div class="paragraph"><p><code>view</code> may also be used as a synonym for <code>visualize</code>.</p></div> <div class="paragraph"><p>If the <em>DISPLAY</em> environment variable is not set, <em>git log</em> is used -instead. You can also give command-line options such as <tt>-p</tt> and -<tt>--stat</tt>.</p></div> +instead. You can also give command-line options such as <code>-p</code> and +<code>--stat</code>.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect view --stat</tt></pre> +<pre><code>$ git bisect view --stat</code></pre> </div></div> </div> <div class="sect2"> @@ -861,7 +859,7 @@ command to show what has been done so far:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect log</tt></pre> +<pre><code>$ git bisect log</code></pre> </div></div> <div class="paragraph"><p>If you discover that you made a mistake in specifying the status of a revision, you can save the output of this command to a file, edit it to @@ -869,8 +867,8 @@ return to a corrected state:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect reset -$ git bisect replay that-file</tt></pre> +<pre><code>$ git bisect reset +$ git bisect replay that-file</code></pre> </div></div> </div> <div class="sect2"> @@ -883,11 +881,11 @@ <div class="paragraph"><p>For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect good/bad # previous round was good or bad. +<pre><code>$ git bisect good/bad # previous round was good or bad. Bisecting: 337 revisions left to test after this $ git bisect visualize # oops, that is uninteresting. $ git reset --hard HEAD~3 # try 3 revisions before what - # was suggested</tt></pre> + # was suggested</code></pre> </div></div> <div class="paragraph"><p>Then compile and test the chosen revision, and afterwards mark the revision as good or bad in the usual manner.</p></div> @@ -898,7 +896,7 @@ to do it for you by issuing the command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect skip # Current version cannot be tested</tt></pre> +<pre><code>$ git bisect skip # Current version cannot be tested</code></pre> </div></div> <div class="paragraph"><p>But Git may eventually be unable to tell the first bad commit among a bad commit and one or more skipped commits.</p></div> @@ -906,36 +904,36 @@ using the "<em><commit1></em>..<em><commit2></em>" notation. For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect skip v2.5..v2.6</tt></pre> +<pre><code>$ git bisect skip v2.5..v2.6</code></pre> </div></div> -<div class="paragraph"><p>This tells the bisect process that no commit after <tt>v2.5</tt>, up to and -including <tt>v2.6</tt>, should be tested.</p></div> +<div class="paragraph"><p>This tells the bisect process that no commit after <code>v2.5</code>, up to and +including <code>v2.6</code>, should be tested.</p></div> <div class="paragraph"><p>Note that if you also want to skip the first commit of the range you would issue the command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect skip v2.5 v2.5..v2.6</tt></pre> +<pre><code>$ git bisect skip v2.5 v2.5..v2.6</code></pre> </div></div> -<div class="paragraph"><p>This tells the bisect process that the commits between <tt>v2.5</tt> included -and <tt>v2.6</tt> included should be skipped.</p></div> +<div class="paragraph"><p>This tells the bisect process that the commits between <code>v2.5</code> included +and <code>v2.6</code> included should be skipped.</p></div> </div> <div class="sect2"> <h3 id="_cutting_down_bisection_by_giving_more_parameters_to_bisect_start">Cutting down bisection by giving more parameters to bisect start</h3> <div class="paragraph"><p>You can further cut down the number of trials, if you know what part of the tree is involved in the problem you are tracking down, by specifying -path parameters when issuing the <tt>bisect start</tt> command:</p></div> +path parameters when issuing the <code>bisect start</code> command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start -- arch/i386 include/asm-i386</tt></pre> +<pre><code>$ git bisect start -- arch/i386 include/asm-i386</code></pre> </div></div> <div class="paragraph"><p>If you know beforehand more than one good commit, you can narrow the bisect space down by specifying all of the good commits immediately after -the bad commit when issuing the <tt>bisect start</tt> command:</p></div> +the bad commit when issuing the <code>bisect start</code> command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start v2.6.20-rc6 v2.6.20-rc4 v2.6.20-rc1 -- +<pre><code>$ git bisect start v2.6.20-rc6 v2.6.20-rc4 v2.6.20-rc1 -- # v2.6.20-rc6 is bad - # v2.6.20-rc4 and v2.6.20-rc1 are good</tt></pre> + # v2.6.20-rc4 and v2.6.20-rc1 are good</code></pre> </div></div> </div> <div class="sect2"> @@ -944,9 +942,9 @@ or bad, you can bisect by issuing the command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect run my_script arguments</tt></pre> +<pre><code>$ git bisect run my_script arguments</code></pre> </div></div> -<div class="paragraph"><p>Note that the script (<tt>my_script</tt> in the above example) should +<div class="paragraph"><p>Note that the script (<code>my_script</code> in the above example) should exit with code 0 if the current source code is good, and exit with a code between 1 and 127 (inclusive), except 125, if the current source code is bad.</p></div> @@ -955,7 +953,7 @@ exit(3) manual page), as the value is chopped with "& 0377".</p></div> <div class="paragraph"><p>The special exit code 125 should be used when the current source code cannot be tested. If the script exits with this code, the current -revision will be skipped (see <tt>git bisect skip</tt> above). 125 was chosen +revision will be skipped (see <code>git bisect skip</code> above). 125 was chosen as the highest sensible value to use for this purpose, because 126 and 127 are used by POSIX shells to signal specific error status (127 is for command not found, 126 is for command found but not executable---these @@ -989,7 +987,7 @@ it point to the commit that should be tested.</p></div> <div class="paragraph"><p>This option may be useful when the test you would perform in each step does not require a checked out tree.</p></div> -<div class="paragraph"><p>If the repository is bare, <tt>--no-checkout</tt> is assumed.</p></div> +<div class="paragraph"><p>If the repository is bare, <code>--no-checkout</code> is assumed.</p></div> </dd> </dl></div> </div> @@ -1004,9 +1002,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start HEAD v1.2 -- # HEAD is bad, v1.2 is good +<pre><code>$ git bisect start HEAD v1.2 -- # HEAD is bad, v1.2 is good $ git bisect run make # "make" builds the app -$ git bisect reset # quit the bisect session</tt></pre> +$ git bisect reset # quit the bisect session</code></pre> </div></div> </li> <li> @@ -1015,9 +1013,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start HEAD origin -- # HEAD is bad, origin is good +<pre><code>$ git bisect start HEAD origin -- # HEAD is bad, origin is good $ git bisect run make test # "make test" builds and tests -$ git bisect reset # quit the bisect session</tt></pre> +$ git bisect reset # quit the bisect session</code></pre> </div></div> </li> <li> @@ -1026,13 +1024,13 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ cat ~/test.sh +<pre><code>$ cat ~/test.sh #!/bin/sh make || exit 125 # this skips broken builds ~/check_test_case.sh # does the test case pass? $ git bisect start HEAD HEAD~10 -- # culprit is among the last 10 $ git bisect run ~/test.sh -$ git bisect reset # quit the bisect session</tt></pre> +$ git bisect reset # quit the bisect session</code></pre> </div></div> <div class="paragraph"><p>Here we use a "test.sh" custom script. In this script, if "make" fails, we skip the current commit. @@ -1048,7 +1046,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ cat ~/test.sh +<pre><code>$ cat ~/test.sh #!/bin/sh # tweak the working tree by merging the hot-fix branch @@ -1068,14 +1066,14 @@ git reset --hard # return control -exit $status</tt></pre> +exit $status</code></pre> </div></div> <div class="paragraph"><p>This applies modifications from a hot-fix branch before each test run, e.g. in case your build or test environment changed so that older revisions may need a fix which newer ones have already. (Make sure the hot-fix branch is based off a commit which is contained in all revisions which you are bisecting, so that the merge does not pull in too much, or -use <tt>git cherry-pick</tt> instead of <tt>git merge</tt>.)</p></div> +use <code>git cherry-pick</code> instead of <code>git merge</code>.)</p></div> </li> <li> <p> @@ -1083,9 +1081,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10 +<pre><code>$ git bisect start HEAD HEAD~10 -- # culprit is among the last 10 $ git bisect run sh -c "make || exit 125; ~/check_test_case.sh" -$ git bisect reset # quit the bisect session</tt></pre> +$ git bisect reset # quit the bisect session</code></pre> </div></div> <div class="paragraph"><p>This shows that you can do without a run script if you write the test on a single line.</p></div> @@ -1096,7 +1094,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bisect start HEAD <known-good-commit> [ <boundary-commit> ... ] --no-checkout +<pre><code>$ git bisect start HEAD <known-good-commit> [ <boundary-commit> ... ] --no-checkout $ git bisect run sh -c ' GOOD=$(git for-each-ref "--format=%(objectname)" refs/bisect/good-*) && git rev-list --objects BISECT_HEAD --not $GOOD >tmp.$$ && @@ -1105,7 +1103,7 @@ rm -f tmp.$$ test $rc = 0' -$ git bisect reset # quit the bisect session</tt></pre> +$ git bisect reset # quit the bisect session</code></pre> </div></div> <div class="paragraph"><p>In this case, when <em>git bisect run</em> finishes, bisect/bad will refer to a commit that has at least one parent whose reachable graph is fully traversable in the sense
diff --git a/git-blame.html b/git-blame.html index 459863f..bec1e3e 100644 --- a/git-blame.html +++ b/git-blame.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-blame(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -762,13 +760,13 @@ <div class="sectionbody"> <div class="paragraph"><p>Annotates each line in the given file with information from the revision which last modified the line. Optionally, start annotating from the given revision.</p></div> -<div class="paragraph"><p>When specified one or more times, <tt>-L</tt> restricts annotation to the requested +<div class="paragraph"><p>When specified one or more times, <code>-L</code> restricts annotation to the requested lines.</p></div> <div class="paragraph"><p>The origin of lines is automatically followed across whole-file renames (currently there is no option to turn the rename-following off). To follow lines moved from one file to another, or to follow lines that were copied and pasted from another file, etc., see the -<tt>-C</tt> and <tt>-M</tt> options.</p></div> +<code>-C</code> and <code>-M</code> options.</p></div> <div class="paragraph"><p>The report does not tell you anything about lines which have been deleted or replaced; you need to use a tool such as <em>git diff</em> or the "pickaxe" interface briefly mentioned in the following paragraph.</p></div> @@ -777,12 +775,12 @@ possible to track when a code snippet was added to a file, moved or copied between files, and eventually deleted or replaced. It works by searching for a text string in the diff. A small example of the pickaxe interface -that searches for <tt>blame_usage</tt>:</p></div> +that searches for <code>blame_usage</code>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git log --pretty=oneline -S'blame_usage' +<pre><code>$ git log --pretty=oneline -S'blame_usage' 5040f17eba15504bad66b14a645bddd9b015ebb7 blame -S <ancestry-file> -ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output</tt></pre> +ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git-blame: Make the output</code></pre> </div></div> </div> </div> @@ -796,7 +794,7 @@ <dd> <p> Show blank SHA-1 for boundary commits. This can also - be controlled via the <tt>blame.blankboundary</tt> config option. + be controlled via the <code>blame.blankboundary</code> config option. </p> </dd> <dt class="hdlist1"> @@ -805,7 +803,7 @@ <dd> <p> Do not treat root commits as boundaries. This can also be - controlled via the <tt>blame.showroot</tt> config option. + controlled via the <code>blame.showroot</code> config option. </p> </dd> <dt class="hdlist1"> @@ -844,7 +842,7 @@ </p> <div class="paragraph"><p>This form will use the first line matching the given POSIX regex. If <start> is a regex, it will search from the end of -the previous <tt>-L</tt> range, if any, otherwise from the start of file. +the previous <code>-L</code> range, if any, otherwise from the start of file. If <start> is “^/regex/”, it will search from the start of file. If <end> is a regex, it will search starting at the line given by <start>.</p></div> @@ -859,7 +857,7 @@ </ul></div> <div class="paragraph"><p>If “:<regex>” is given in place of <start> and <end>, it denotes the range from the first funcname line that matches <regex>, up to the next -funcname line. “:<regex>” searches from the end of the previous <tt>-L</tt> range, +funcname line. “:<regex>” searches from the end of the previous <code>-L</code> range, if any, otherwise from the start of file. “^:<regex>” searches from the start of file.</p></div> </dd> @@ -935,7 +933,7 @@ <dd> <p> Specifies the encoding used to output author names - and commit summaries. Setting it to <tt>none</tt> makes blame + and commit summaries. Setting it to <code>none</code> makes blame output unconverted data. For more information see the discussion about encoding in the <a href="git-log.html">git-log(1)</a> manual page. @@ -950,7 +948,7 @@ changes starting backwards from the working tree copy. This flag makes the command pretend as if the working tree copy has the contents of the named file (specify - <tt>-</tt> to make the command read from the standard input). + <code>-</code> to make the command read from the standard input). </p> </dd> <dt class="hdlist1"> @@ -991,7 +989,7 @@ </dt> <dd> <p> - In addition to <tt>-M</tt>, detect lines moved or copied from other + In addition to <code>-M</code>, detect lines moved or copied from other files that were modified in the same commit. This is useful when you reorganize your program and move code around across files. When this option is given twice, @@ -1004,7 +1002,7 @@ alphanumeric characters that Git must detect as moving/copying between files for it to associate those lines with the parent commit. And the default value is 40. If there are more than one -<tt>-C</tt> options given, the <num> argument of the last <tt>-C</tt> will +<code>-C</code> options given, the <num> argument of the last <code>-C</code> will take effect.</p></div> </dd> <dt class="hdlist1"> @@ -1029,8 +1027,8 @@ <dd> <p> Include debugging information related to the movement of - lines between files (see <tt>-C</tt>) and lines moved within a - file (see <tt>-M</tt>). The first number listed is the score. + lines between files (see <code>-C</code>) and lines moved within a + file (see <code>-M</code>). The first number listed is the score. This is the number of alphanumeric characters detected as having been moved between or within files. This must be above a certain threshold for <em>git blame</em> to consider those lines @@ -1159,15 +1157,15 @@ already been seen. For example, two lines that are blamed to the same commit will both be shown, but the details for that commit will be shown only once. This is more efficient, but may require more state be kept by -the reader. The <tt>--line-porcelain</tt> option can be used to output full +the reader. The <code>--line-porcelain</code> option can be used to output full commit information for each line, allowing simpler (but less efficient) usage like:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt># count the number of lines attributed to each author +<pre><code># count the number of lines attributed to each author git blame --line-porcelain file | sed -n 's/^author //p' | -sort | uniq -c | sort -rn</tt></pre> +sort | uniq -c | sort -rn</code></pre> </div></div> </div> </div> @@ -1176,30 +1174,30 @@ <div class="sectionbody"> <div class="paragraph"><p>Unlike <em>git blame</em> and <em>git annotate</em> in older versions of git, the extent of the annotation can be limited to both line ranges and revision -ranges. The <tt>-L</tt> option, which limits annotation to a range of lines, may be +ranges. The <code>-L</code> option, which limits annotation to a range of lines, may be specified multiple times.</p></div> <div class="paragraph"><p>When you are interested in finding the origin for -lines 40-60 for file <tt>foo</tt>, you can use the <tt>-L</tt> option like so +lines 40-60 for file <code>foo</code>, you can use the <code>-L</code> option like so (they mean the same thing — both ask for 21 lines starting at line 40):</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git blame -L 40,60 foo -git blame -L 40,+21 foo</tt></pre> +<pre><code>git blame -L 40,60 foo +git blame -L 40,+21 foo</code></pre> </div></div> <div class="paragraph"><p>Also you can use a regular expression to specify the line range:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git blame -L '/^sub hello {/,/^}$/' foo</tt></pre> +<pre><code>git blame -L '/^sub hello {/,/^}$/' foo</code></pre> </div></div> -<div class="paragraph"><p>which limits the annotation to the body of the <tt>hello</tt> subroutine.</p></div> +<div class="paragraph"><p>which limits the annotation to the body of the <code>hello</code> subroutine.</p></div> <div class="paragraph"><p>When you are not interested in changes older than version v2.6.18, or changes older than 3 weeks, you can use revision range specifiers similar to <em>git rev-list</em>:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git blame v2.6.18.. -- foo -git blame --since=3.weeks -- foo</tt></pre> +<pre><code>git blame v2.6.18.. -- foo +git blame --since=3.weeks -- foo</code></pre> </div></div> <div class="paragraph"><p>When revision range specifiers are used to limit the annotation, lines that have not changed since the range boundary (either the @@ -1213,20 +1211,20 @@ introduced the file with:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git log --diff-filter=A --pretty=short -- foo</tt></pre> +<pre><code>git log --diff-filter=A --pretty=short -- foo</code></pre> </div></div> <div class="paragraph"><p>and then annotate the change between the commit and its -parents, using <tt>commit^!</tt> notation:</p></div> +parents, using <code>commit^!</code> notation:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git blame -C -C -f $commit^! -- foo</tt></pre> +<pre><code>git blame -C -C -f $commit^! -- foo</code></pre> </div></div> </div> </div> <div class="sect1"> <h2 id="_incremental_output">INCREMENTAL OUTPUT</h2> <div class="sectionbody"> -<div class="paragraph"><p>When called with <tt>--incremental</tt> option, the command outputs the +<div class="paragraph"><p>When called with <code>--incremental</code> option, the command outputs the result as it is built. The output generally will talk about lines touched by more recent commits first (i.e. the lines will be annotated out of order) and is meant to be used by @@ -1241,7 +1239,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt><40-byte hex sha1> <sourceline> <resultline> <num_lines></tt></pre> +<pre><code><40-byte hex sha1> <sourceline> <resultline> <num_lines></code></pre> </div></div> <div class="paragraph"><p>Line numbers count from 1.</p></div> </li> @@ -1260,7 +1258,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>"filename" <whitespace-quoted-filename-goes-here></tt></pre> +<pre><code>"filename" <whitespace-quoted-filename-goes-here></code></pre> </div></div> <div class="paragraph"><p>and thus it is really quite easy to parse for some line- and word-oriented parser (which should be quite natural for most scripting languages).</p></div> @@ -1284,7 +1282,7 @@ <div class="sect1"> <h2 id="_mapping_authors">MAPPING AUTHORS</h2> <div class="sectionbody"> -<div class="paragraph"><p>If the file <tt>.mailmap</tt> exists at the toplevel of the repository, or at +<div class="paragraph"><p>If the file <code>.mailmap</code> exists at the toplevel of the repository, or at the location pointed to by the mailmap.file or mailmap.blob configuration options, it is used to map author and committer names and email addresses to @@ -1296,7 +1294,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>Proper Name <commit@email.xx></tt></pre> +<pre><code>Proper Name <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>The more complex forms are:</p></div> @@ -1304,7 +1302,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt><proper@email.xx> <commit@email.xx></tt></pre> +<pre><code><proper@email.xx> <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>which allows mailmap to replace only the email part of a commit, and:</p></div> @@ -1312,7 +1310,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>Proper Name <proper@email.xx> <commit@email.xx></tt></pre> +<pre><code>Proper Name <proper@email.xx> <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>which allows mailmap to replace both the name and the email of a @@ -1321,7 +1319,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>Proper Name <proper@email.xx> Commit Name <commit@email.xx></tt></pre> +<pre><code>Proper Name <proper@email.xx> Commit Name <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>which allows mailmap to replace both the name and the email of a @@ -1330,41 +1328,41 @@ and Joe, whose names appear in the repository under several forms:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Joe Developer <joe@example.com> +<pre><code>Joe Developer <joe@example.com> Joe R. Developer <joe@example.com> Jane Doe <jane@example.com> Jane Doe <jane@laptop.(none)> -Jane D. <jane@desktop.(none)></tt></pre> +Jane D. <jane@desktop.(none)></code></pre> </div></div> <div class="paragraph"><p>Now suppose that Joe wants his middle name initial used, and Jane -prefers her family name fully spelled out. A proper <tt>.mailmap</tt> file +prefers her family name fully spelled out. A proper <code>.mailmap</code> file would look like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Jane Doe <jane@desktop.(none)> -Joe R. Developer <joe@example.com></tt></pre> +<pre><code>Jane Doe <jane@desktop.(none)> +Joe R. Developer <joe@example.com></code></pre> </div></div> -<div class="paragraph"><p>Note how there is no need for an entry for <tt><jane@laptop.(none)></tt>, because the +<div class="paragraph"><p>Note how there is no need for an entry for <code><jane@laptop.(none)></code>, because the real name of that author is already correct.</p></div> <div class="paragraph"><p>Example 2: Your repository contains commits from the following authors:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>nick1 <bugs@company.xx> +<pre><code>nick1 <bugs@company.xx> nick2 <bugs@company.xx> nick2 <nick2@company.xx> santa <me@company.xx> claus <me@company.xx> -CTO <cto@coompany.xx></tt></pre> +CTO <cto@coompany.xx></code></pre> </div></div> -<div class="paragraph"><p>Then you might want a <tt>.mailmap</tt> file that looks like:</p></div> +<div class="paragraph"><p>Then you might want a <code>.mailmap</code> file that looks like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><cto@company.xx> <cto@coompany.xx> +<pre><code><cto@company.xx> <cto@coompany.xx> Some Dude <some@dude.xx> nick1 <bugs@company.xx> Other Author <other@author.xx> nick2 <bugs@company.xx> Other Author <other@author.xx> <nick2@company.xx> -Santa Claus <santa.claus@northpole.xx> <me@company.xx></tt></pre> +Santa Claus <santa.claus@northpole.xx> <me@company.xx></code></pre> </div></div> <div class="paragraph"><p>Use hash <em>#</em> for comments that are either on their own line, or after the email address.</p></div>
diff --git a/git-branch.html b/git-branch.html index 7bf77a2..fc6fe07 100644 --- a/git-branch.html +++ b/git-branch.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-branch(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -767,20 +765,20 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>If <tt>--list</tt> is given, or if there are no non-option arguments, existing +<div class="paragraph"><p>If <code>--list</code> is given, or if there are no non-option arguments, existing branches are listed; the current branch will be highlighted with an -asterisk. Option <tt>-r</tt> causes the remote-tracking branches to be listed, -and option <tt>-a</tt> shows both local and remote branches. If a <tt><pattern></tt> +asterisk. Option <code>-r</code> causes the remote-tracking branches to be listed, +and option <code>-a</code> shows both local and remote branches. If a <code><pattern></code> is given, it is used as a shell wildcard to restrict the output to matching branches. If multiple patterns are given, a branch is shown if it matches any of the patterns. Note that when providing a -<tt><pattern></tt>, you must use <tt>--list</tt>; otherwise the command is interpreted +<code><pattern></code>, you must use <code>--list</code>; otherwise the command is interpreted as branch creation.</p></div> -<div class="paragraph"><p>With <tt>--contains</tt>, shows only the branches that contain the named commit +<div class="paragraph"><p>With <code>--contains</code>, shows only the branches that contain the named commit (in other words, the branches whose tip commits are descendants of the -named commit). With <tt>--merged</tt>, only branches merged into the named +named commit). With <code>--merged</code>, only branches merged into the named commit (i.e. the branches whose tip commits are reachable from the named -commit) will be listed. With <tt>--no-merged</tt> only branches not merged into +commit) will be listed. With <code>--no-merged</code> only branches not merged into the named commit will be listed. If the <commit> argument is missing it defaults to <em>HEAD</em> (i.e. the tip of the current branch).</p></div> <div class="paragraph"><p>The command’s second form creates a new branch head named <branchname> @@ -789,21 +787,21 @@ working tree to it; use "git checkout <newbranch>" to switch to the new branch.</p></div> <div class="paragraph"><p>When a local branch is started off a remote-tracking branch, Git sets up the -branch (specifically the <tt>branch.<name>.remote</tt> and <tt>branch.<name>.merge</tt> +branch (specifically the <code>branch.<name>.remote</code> and <code>branch.<name>.merge</code> configuration entries) so that <em>git pull</em> will appropriately merge from the remote-tracking branch. This behavior may be changed via the global -<tt>branch.autosetupmerge</tt> configuration flag. That setting can be -overridden by using the <tt>--track</tt> and <tt>--no-track</tt> options, and -changed later using <tt>git branch --set-upstream-to</tt>.</p></div> -<div class="paragraph"><p>With a <tt>-m</tt> or <tt>-M</tt> option, <oldbranch> will be renamed to <newbranch>. +<code>branch.autosetupmerge</code> configuration flag. That setting can be +overridden by using the <code>--track</code> and <code>--no-track</code> options, and +changed later using <code>git branch --set-upstream-to</code>.</p></div> +<div class="paragraph"><p>With a <code>-m</code> or <code>-M</code> option, <oldbranch> will be renamed to <newbranch>. If <oldbranch> had a corresponding reflog, it is renamed to match <newbranch>, and a reflog entry is created to remember the branch renaming. If <newbranch> exists, -M must be used to force the rename to happen.</p></div> -<div class="paragraph"><p>With a <tt>-d</tt> or <tt>-D</tt> option, <tt><branchname></tt> will be deleted. You may +<div class="paragraph"><p>With a <code>-d</code> or <code>-D</code> option, <code><branchname></code> will be deleted. You may specify more than one branch for deletion. If the branch currently has a reflog then the reflog will also be deleted.</p></div> -<div class="paragraph"><p>Use <tt>-r</tt> together with <tt>-d</tt> to delete remote-tracking branches. Note, that it +<div class="paragraph"><p>Use <code>-r</code> together with <code>-d</code> to delete remote-tracking branches. Note, that it only makes sense to delete remote-tracking branches if they no longer exist in the remote repository or if <em>git fetch</em> was configured not to fetch them again. See also the <em>prune</em> subcommand of <a href="git-remote.html">git-remote(1)</a> for a @@ -823,8 +821,8 @@ <dd> <p> Delete a branch. The branch must be fully merged in its - upstream branch, or in <tt>HEAD</tt> if no upstream was set with - <tt>--track</tt> or <tt>--set-upstream</tt>. + upstream branch, or in <code>HEAD</code> if no upstream was set with + <code>--track</code> or <code>--set-upstream</code>. </p> </dd> <dt class="hdlist1"> @@ -847,7 +845,7 @@ all changes made to the branch ref, enabling use of date based sha1 expressions such as "<branchname>@{yesterday}". Note that in non-bare repositories, reflogs are usually - enabled by default by the <tt>core.logallrefupdates</tt> config option. + enabled by default by the <code>core.logallrefupdates</code> config option. </p> </dd> <dt class="hdlist1"> @@ -859,7 +857,7 @@ <dd> <p> Reset <branchname> to <startpoint> if <branchname> exists - already. Without <tt>-f</tt> <em>git branch</em> refuses to change an existing branch. + already. Without <code>-f</code> <em>git branch</em> refuses to change an existing branch. </p> </dd> <dt class="hdlist1"> @@ -898,7 +896,7 @@ <p> Turn off branch colors, even when the configuration file gives the default to color output. - Same as <tt>--color=never</tt>. + Same as <code>--color=never</code>. </p> </dd> <dt class="hdlist1"> @@ -910,7 +908,7 @@ <dd> <p> Display branch listing in columns. See configuration variable - column.branch for option syntax.<tt>--column</tt> and <tt>--no-column</tt> + column.branch for option syntax.<code>--column</code> and <code>--no-column</code> without options are equivalent to <em>always</em> and <em>never</em> respectively. </p> <div class="paragraph"><p>This option is only applicable in non-verbose mode.</p></div> @@ -942,8 +940,8 @@ </dt> <dd> <p> - Activate the list mode. <tt>git branch <pattern></tt> would try to create a branch, - use <tt>git branch --list <pattern></tt> to list matching branches. + Activate the list mode. <code>git branch <pattern></code> would try to create a branch, + use <code>git branch --list <pattern></code> to list matching branches. </p> </dd> <dt class="hdlist1"> @@ -960,8 +958,8 @@ When in list mode, show sha1 and commit subject line for each head, along with relationship to upstream branch (if any). If given twice, print - the name of the upstream branch, as well (see also <tt>git remote - show <remote></tt>). + the name of the upstream branch, as well (see also <code>git remote + show <remote></code>). </p> </dd> <dt class="hdlist1"> @@ -982,7 +980,7 @@ <dd> <p> Alter the sha1’s minimum display length in the output listing. - The default value is 7 and can be overridden by the <tt>core.abbrev</tt> + The default value is 7 and can be overridden by the <code>core.abbrev</code> config option. </p> </dd> @@ -1002,18 +1000,18 @@ </dt> <dd> <p> - When creating a new branch, set up <tt>branch.<name>.remote</tt> and - <tt>branch.<name>.merge</tt> configuration entries to mark the + When creating a new branch, set up <code>branch.<name>.remote</code> and + <code>branch.<name>.merge</code> configuration entries to mark the start-point branch as "upstream" from the new branch. This configuration will tell git to show the relationship between the - two branches in <tt>git status</tt> and <tt>git branch -v</tt>. Furthermore, - it directs <tt>git pull</tt> without arguments to pull from the + two branches in <code>git status</code> and <code>git branch -v</code>. Furthermore, + it directs <code>git pull</code> without arguments to pull from the upstream when the new branch is checked out. </p> <div class="paragraph"><p>This behavior is the default when the start point is a remote-tracking branch. -Set the branch.autosetupmerge configuration variable to <tt>false</tt> if you -want <tt>git checkout</tt> and <tt>git branch</tt> to always behave as if <em>--no-track</em> -were given. Set it to <tt>always</tt> if you want this behavior when the +Set the branch.autosetupmerge configuration variable to <code>false</code> if you +want <code>git checkout</code> and <code>git branch</code> to always behave as if <em>--no-track</em> +were given. Set it to <code>always</code> if you want this behavior when the start-point is either a local or remote-tracking branch.</p></div> </dd> <dt class="hdlist1"> @@ -1030,9 +1028,9 @@ </dt> <dd> <p> - If specified branch does not exist yet or if <tt>--force</tt> has been - given, acts exactly like <tt>--track</tt>. Otherwise sets up configuration - like <tt>--track</tt> would when creating the branch, except that where + If specified branch does not exist yet or if <code>--force</code> has been + given, acts exactly like <code>--track</code>. Otherwise sets up configuration + like <code>--track</code> would when creating the branch, except that where branch points to is not changed. </p> </dd> @@ -1064,7 +1062,7 @@ <dd> <p> Open an editor and edit the text to explain what the branch is - for, to be used by various other commands (e.g. <tt>request-pull</tt>). + for, to be used by various other commands (e.g. <code>request-pull</code>). </p> </dd> <dt class="hdlist1"> @@ -1073,7 +1071,7 @@ <dd> <p> Only list branches which contain the specified commit (HEAD - if not specified). Implies <tt>--list</tt>. + if not specified). Implies <code>--list</code>. </p> </dd> <dt class="hdlist1"> @@ -1082,7 +1080,7 @@ <dd> <p> Only list branches whose tips are reachable from the - specified commit (HEAD if not specified). Implies <tt>--list</tt>. + specified commit (HEAD if not specified). Implies <code>--list</code>. </p> </dd> <dt class="hdlist1"> @@ -1091,7 +1089,7 @@ <dd> <p> Only list branches whose tips are not reachable from the - specified commit (HEAD if not specified). Implies <tt>--list</tt>. + specified commit (HEAD if not specified). Implies <code>--list</code>. </p> </dd> <dt class="hdlist1"> @@ -1145,10 +1143,10 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6 +<pre><code>$ git clone git://git.kernel.org/pub/scm/.../linux-2.6 my2.6 $ cd my2.6 $ git branch my2.6.14 v2.6.14 <b><1></b> -$ git checkout my2.6.14</tt></pre> +$ git checkout my2.6.14</code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1165,10 +1163,10 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git clone git://git.kernel.org/.../git.git my.git +<pre><code>$ git clone git://git.kernel.org/.../git.git my.git $ cd my.git $ git branch -d -r origin/todo origin/html origin/man <b><1></b> -$ git branch -D test <b><2></b></tt></pre> +$ git branch -D test <b><2></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1193,27 +1191,27 @@ <h2 id="_notes">Notes</h2> <div class="sectionbody"> <div class="paragraph"><p>If you are creating a branch that you want to checkout immediately, it is -easier to use the git checkout command with its <tt>-b</tt> option to create +easier to use the git checkout command with its <code>-b</code> option to create a branch and check it out with a single command.</p></div> -<div class="paragraph"><p>The options <tt>--contains</tt>, <tt>--merged</tt> and <tt>--no-merged</tt> serve three related +<div class="paragraph"><p>The options <code>--contains</code>, <code>--merged</code> and <code>--no-merged</code> serve three related but different purposes:</p></div> <div class="ulist"><ul> <li> <p> -<tt>--contains <commit></tt> is used to find all branches which will need +<code>--contains <commit></code> is used to find all branches which will need special attention if <commit> were to be rebased or amended, since those branches contain the specified <commit>. </p> </li> <li> <p> -<tt>--merged</tt> is used to find all branches which can be safely deleted, +<code>--merged</code> is used to find all branches which can be safely deleted, since those branches are fully contained by HEAD. </p> </li> <li> <p> -<tt>--no-merged</tt> is used to find branches which are candidates for merging +<code>--no-merged</code> is used to find branches which are candidates for merging into HEAD, since those branches are not fully contained by HEAD. </p> </li>
diff --git a/git-bundle.html b/git-bundle.html index f56426f..83c6dac 100644 --- a/git-bundle.html +++ b/git-bundle.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-bundle(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -831,7 +829,7 @@ A list of arguments, acceptable to <em>git rev-parse</em> and <em>git rev-list</em> (and containing a named ref, see SPECIFYING REFERENCES below), that specifies the specific objects and references - to transport. For example, <tt>master~10..master</tt> causes the + to transport. For example, <code>master~10..master</code> causes the current master reference to be packaged along with all objects added since its 10th ancestor commit. There is no explicit limit to the number of references and objects that may be @@ -858,12 +856,12 @@ <div class="sectionbody"> <div class="paragraph"><p><em>git bundle</em> will only package references that are shown by <em>git show-ref</em>: this includes heads, tags, and remote heads. References -such as <tt>master~1</tt> cannot be packaged, but are perfectly suitable for +such as <code>master~1</code> cannot be packaged, but are perfectly suitable for defining the basis. More than one reference may be packaged, and more than one basis can be specified. The objects packaged are those not contained in the union of the given bases. Each basis can be -specified explicitly (e.g. <tt>^master~10</tt>), or implicitly (e.g. -<tt>master~10..master</tt>, <tt>--since=10.days.ago master</tt>).</p></div> +specified explicitly (e.g. <code>^master~10</code>), or implicitly (e.g. +<code>master~10..master</code>, <code>--since=10.days.ago master</code>).</p></div> <div class="paragraph"><p>It is very important that the basis used be held by the destination. It is okay to err on the side of caution, causing the bundle file to contain objects already in the destination, as these are ignored @@ -884,25 +882,25 @@ with an incremental bundle:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>machineA$ cd R1 +<pre><code>machineA$ cd R1 machineA$ git bundle create file.bundle master -machineA$ git tag -f lastR2bundle master</tt></pre> +machineA$ git tag -f lastR2bundle master</code></pre> </div></div> <div class="paragraph"><p>Then you transfer file.bundle to the target machine B. Because this bundle does not require any existing object to be extracted, you can create a new repository on machine B by cloning from it:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>machineB$ git clone -b master /home/me/tmp/file.bundle R2</tt></pre> +<pre><code>machineB$ git clone -b master /home/me/tmp/file.bundle R2</code></pre> </div></div> <div class="paragraph"><p>This will define a remote called "origin" in the resulting repository that lets you fetch and pull from the bundle. The $GIT_DIR/config file in R2 will have an entry like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[remote "origin"] +<pre><code>[remote "origin"] url = /home/me/tmp/file.bundle - fetch = refs/heads/*:refs/remotes/origin/*</tt></pre> + fetch = refs/heads/*:refs/remotes/origin/*</code></pre> </div></div> <div class="paragraph"><p>To update the resulting mine.git repository, you can fetch or pull after replacing the bundle stored at /home/me/tmp/file.bundle with incremental @@ -911,16 +909,16 @@ incremental bundle to update the other repository:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>machineA$ cd R1 +<pre><code>machineA$ cd R1 machineA$ git bundle create file.bundle lastR2bundle..master -machineA$ git tag -f lastR2bundle master</tt></pre> +machineA$ git tag -f lastR2bundle master</code></pre> </div></div> <div class="paragraph"><p>You then transfer the bundle to the other machine to replace /home/me/tmp/file.bundle, and pull from it.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>machineB$ cd R2 -machineB$ git pull</tt></pre> +<pre><code>machineB$ cd R2 +machineB$ git pull</code></pre> </div></div> <div class="paragraph"><p>If you know up to what commit the intended recipient repository should have the necessary objects, you can use that knowledge to specify the @@ -931,23 +929,23 @@ <div class="paragraph"><p>You can use a tag that is present in both:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bundle create mybundle v1.0.0..master</tt></pre> +<pre><code>$ git bundle create mybundle v1.0.0..master</code></pre> </div></div> <div class="paragraph"><p>You can use a basis based on time:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bundle create mybundle --since=10.days master</tt></pre> +<pre><code>$ git bundle create mybundle --since=10.days master</code></pre> </div></div> <div class="paragraph"><p>You can use the number of commits:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bundle create mybundle -10 master</tt></pre> +<pre><code>$ git bundle create mybundle -10 master</code></pre> </div></div> -<div class="paragraph"><p>You can run <tt>git-bundle verify</tt> to see if you can extract from a bundle +<div class="paragraph"><p>You can run <code>git-bundle verify</code> to see if you can extract from a bundle that was created with a basis:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git bundle verify mybundle</tt></pre> +<pre><code>$ git bundle verify mybundle</code></pre> </div></div> <div class="paragraph"><p>This will list what commits you must have in order to extract from the bundle and will error out if you do not have them.</p></div> @@ -956,12 +954,12 @@ references when fetching:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git fetch mybundle master:localRef</tt></pre> +<pre><code>$ git fetch mybundle master:localRef</code></pre> </div></div> <div class="paragraph"><p>You can also see what references it offers:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git ls-remote mybundle</tt></pre> +<pre><code>$ git ls-remote mybundle</code></pre> </div></div> </div> </div>
diff --git a/git-cat-file.html b/git-cat-file.html index ec7d90c..225bce5 100644 --- a/git-cat-file.html +++ b/git-cat-file.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-cat-file(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -849,7 +847,7 @@ <p> Print object information and contents for each object provided on stdin. May not be combined with any other options or arguments. - See the section <tt>BATCH OUTPUT</tt> below for details. + See the section <code>BATCH OUTPUT</code> below for details. </p> </dd> <dt class="hdlist1"> @@ -862,7 +860,7 @@ <p> Print object information for each object provided on stdin. May not be combined with any other options or arguments. See the - section <tt>BATCH OUTPUT</tt> below for details. + section <code>BATCH OUTPUT</code> below for details. </p> </dd> </dl></div> @@ -882,17 +880,17 @@ <div class="sect1"> <h2 id="_batch_output">BATCH OUTPUT</h2> <div class="sectionbody"> -<div class="paragraph"><p>If <tt>--batch</tt> or <tt>--batch-check</tt> is given, <tt>cat-file</tt> will read objects +<div class="paragraph"><p>If <code>--batch</code> or <code>--batch-check</code> is given, <code>cat-file</code> will read objects from stdin, one per line, and print information about them. By default, the whole line is considered as an object, as if it were fed to <a href="git-rev-parse.html">git-rev-parse(1)</a>.</p></div> <div class="paragraph"><p>You can specify the information shown for each object by using a custom -<tt><format></tt>. The <tt><format></tt> is copied literally to stdout for each -object, with placeholders of the form <tt>%(atom)</tt> expanded, followed by a +<code><format></code>. The <code><format></code> is copied literally to stdout for each +object, with placeholders of the form <code>%(atom)</code> expanded, followed by a newline. The available atoms are:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>objectname</tt> +<code>objectname</code> </dt> <dd> <p> @@ -900,43 +898,43 @@ </p> </dd> <dt class="hdlist1"> -<tt>objecttype</tt> +<code>objecttype</code> </dt> <dd> <p> - The type of of the object (the same as <tt>cat-file -t</tt> reports). + The type of of the object (the same as <code>cat-file -t</code> reports). </p> </dd> <dt class="hdlist1"> -<tt>objectsize</tt> +<code>objectsize</code> </dt> <dd> <p> - The size, in bytes, of the object (the same as <tt>cat-file -s</tt> + The size, in bytes, of the object (the same as <code>cat-file -s</code> reports). </p> </dd> <dt class="hdlist1"> -<tt>objectsize:disk</tt> +<code>objectsize:disk</code> </dt> <dd> <p> The size, in bytes, that the object takes up on disk. See the - note about on-disk sizes in the <tt>CAVEATS</tt> section below. + note about on-disk sizes in the <code>CAVEATS</code> section below. </p> </dd> <dt class="hdlist1"> -<tt>deltabase</tt> +<code>deltabase</code> </dt> <dd> <p> If the object is stored as a delta on-disk, this expands to the 40-hex sha1 of the delta base object. Otherwise, expands to the - null sha1 (40 zeroes). See <tt>CAVEATS</tt> below. + null sha1 (40 zeroes). See <code>CAVEATS</code> below. </p> </dd> <dt class="hdlist1"> -<tt>rest</tt> +<code>rest</code> </dt> <dd> <p> @@ -944,31 +942,31 @@ at the first whitespace boundary. All characters before that whitespace are considered to be the object name; characters after that first run of whitespace (i.e., the "rest" of the - line) are output in place of the <tt>%(rest)</tt> atom. + line) are output in place of the <code>%(rest)</code> atom. </p> </dd> </dl></div> -<div class="paragraph"><p>If no format is specified, the default format is <tt>%(objectname) -%(objecttype) %(objectsize)</tt>.</p></div> -<div class="paragraph"><p>If <tt>--batch</tt> is specified, the object information is followed by the -object contents (consisting of <tt>%(objectsize)</tt> bytes), followed by a +<div class="paragraph"><p>If no format is specified, the default format is <code>%(objectname) +%(objecttype) %(objectsize)</code>.</p></div> +<div class="paragraph"><p>If <code>--batch</code> is specified, the object information is followed by the +object contents (consisting of <code>%(objectsize)</code> bytes), followed by a newline.</p></div> -<div class="paragraph"><p>For example, <tt>--batch</tt> without a custom format would produce:</p></div> +<div class="paragraph"><p>For example, <code>--batch</code> without a custom format would produce:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><sha1> SP <type> SP <size> LF -<contents> LF</tt></pre> +<pre><code><sha1> SP <type> SP <size> LF +<contents> LF</code></pre> </div></div> -<div class="paragraph"><p>Whereas <tt>--batch-check='%(objectname) %(objecttype)'</tt> would produce:</p></div> +<div class="paragraph"><p>Whereas <code>--batch-check='%(objectname) %(objecttype)'</code> would produce:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><sha1> SP <type> LF</tt></pre> +<pre><code><sha1> SP <type> LF</code></pre> </div></div> <div class="paragraph"><p>If a name is specified on stdin that cannot be resolved to an object in -the repository, then <tt>cat-file</tt> will ignore any custom format and print:</p></div> +the repository, then <code>cat-file</code> will ignore any custom format and print:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><object> SP missing LF</tt></pre> +<pre><code><object> SP missing LF</code></pre> </div></div> </div> </div>
diff --git a/git-check-attr.html b/git-check-attr.html index a576e80..a4264f8 100644 --- a/git-check-attr.html +++ b/git-check-attr.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-check-attr(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -782,7 +780,7 @@ </dt> <dd> <p> - Consider <tt>.gitattributes</tt> in the index only, ignoring the working tree. + Consider <code>.gitattributes</code> in the index only, ignoring the working tree. </p> </dd> <dt class="hdlist1"> @@ -799,7 +797,7 @@ <dd> <p> The output format is modified to be machine-parseable. - If <tt>--stdin</tt> is also given, input paths are separated + If <code>--stdin</code> is also given, input paths are separated with a NUL character instead of a linefeed character. </p> </dd> @@ -813,7 +811,7 @@ </p> </dd> </dl></div> -<div class="paragraph"><p>If none of <tt>--stdin</tt>, <tt>--all</tt>, or <tt>--</tt> is used, the first argument +<div class="paragraph"><p>If none of <code>--stdin</code>, <code>--all</code>, or <code>--</code> is used, the first argument will be treated as an attribute and the rest of the arguments as pathnames.</p></div> </div> @@ -823,7 +821,7 @@ <div class="sectionbody"> <div class="paragraph"><p>The output is of the form: <path> COLON SP <attribute> COLON SP <info> LF</p></div> -<div class="paragraph"><p>unless <tt>-z</tt> is in effect, in which case NUL is used as delimiter: +<div class="paragraph"><p>unless <code>-z</code> is in effect, in which case NUL is used as delimiter: <path> NUL <attribute> NUL <info> NUL</p></div> <div class="paragraph"><p><path> is the path of a file being queried, <attribute> is an attribute being queried and <info> can be either:</p></div> @@ -861,7 +859,7 @@ </p> </dd> </dl></div> -<div class="paragraph"><p>Buffering happens as documented under the <tt>GIT_FLUSH</tt> option in +<div class="paragraph"><p>Buffering happens as documented under the <code>GIT_FLUSH</code> option in <a href="git.html">git(1)</a>. The caller is responsible for avoiding deadlocks caused by overfilling an input buffer or reading from an empty output buffer.</p></div> @@ -873,9 +871,9 @@ <div class="paragraph"><p>In the examples, the following <em>.gitattributes</em> file is used:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>*.java diff=java -crlf myAttr +<pre><code>*.java diff=java -crlf myAttr NoMyAttr.java !myAttr -README caveat=unspecified</tt></pre> +README caveat=unspecified</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -886,8 +884,8 @@ </ul></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git check-attr diff org/example/MyClass.java -org/example/MyClass.java: diff: java</tt></pre> +<pre><code>$ git check-attr diff org/example/MyClass.java +org/example/MyClass.java: diff: java</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -898,10 +896,10 @@ </ul></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git check-attr crlf diff myAttr -- org/example/MyClass.java +<pre><code>$ git check-attr crlf diff myAttr -- org/example/MyClass.java org/example/MyClass.java: crlf: unset org/example/MyClass.java: diff: java -org/example/MyClass.java: myAttr: set</tt></pre> +org/example/MyClass.java: myAttr: set</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -912,9 +910,9 @@ </ul></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git check-attr --all -- org/example/MyClass.java +<pre><code>$ git check-attr --all -- org/example/MyClass.java org/example/MyClass.java: diff: java -org/example/MyClass.java: myAttr: set</tt></pre> +org/example/MyClass.java: myAttr: set</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -925,9 +923,9 @@ </ul></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git check-attr myAttr -- org/example/MyClass.java org/example/NoMyAttr.java +<pre><code>$ git check-attr myAttr -- org/example/MyClass.java org/example/NoMyAttr.java org/example/MyClass.java: myAttr: set -org/example/NoMyAttr.java: myAttr: unspecified</tt></pre> +org/example/NoMyAttr.java: myAttr: unspecified</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -938,8 +936,8 @@ </ul></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git check-attr caveat README -README: caveat: unspecified</tt></pre> +<pre><code>$ git check-attr caveat README +README: caveat: unspecified</code></pre> </div></div> </div> </div>
diff --git a/git-check-ignore.html b/git-check-ignore.html index a44c9b2..0799dfd 100644 --- a/git-check-ignore.html +++ b/git-check-ignore.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-check-ignore(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -760,7 +758,7 @@ <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"><p>For each pathname given via the command-line or from a file via -<tt>--stdin</tt>, show the pattern from .gitignore (or other input files to +<code>--stdin</code>, show the pattern from .gitignore (or other input files to the exclude mechanism) that decides if the pathname is excluded or included. Later patterns within a file take precedence over earlier ones.</p></div> @@ -802,7 +800,7 @@ <dd> <p> The output format is modified to be machine-parseable (see - below). If <tt>--stdin</tt> is also given, input paths are separated + below). If <code>--stdin</code> is also given, input paths are separated with a NUL character instead of a linefeed character. </p> </dd> @@ -812,7 +810,7 @@ <dd> <p> Show given paths which don’t match any pattern. This only - makes sense when <tt>--verbose</tt> is enabled, otherwise it would + makes sense when <code>--verbose</code> is enabled, otherwise it would not be possible to distinguish between paths which match a pattern and those which don’t. </p> @@ -823,10 +821,10 @@ <dd> <p> Don’t look in the index when undertaking the checks. This can - be used to debug why a path became tracked by e.g. <tt>git add .</tt> + be used to debug why a path became tracked by e.g. <code>git add .</code> and was not ignored by the rules as expected by the user or when developing patterns including negation to match a path previously - added with <tt>git add -f</tt>. + added with <code>git add -f</code>. </p> </dd> </dl></div> @@ -839,20 +837,20 @@ will be output, one per line. If no pattern matches a given path, nothing will be output for that path; this means that path will not be ignored.</p></div> -<div class="paragraph"><p>If <tt>--verbose</tt> is specified, the output is a series of lines of the form:</p></div> +<div class="paragraph"><p>If <code>--verbose</code> is specified, the output is a series of lines of the form:</p></div> <div class="paragraph"><p><source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname></p></div> <div class="paragraph"><p><pathname> is the path of a file being queried, <pattern> is the matching pattern, <source> is the pattern’s source file, and <linenum> is the line number of the pattern within that source. If the pattern -contained a <tt>!</tt> prefix or <tt>/</tt> suffix, it will be preserved in the +contained a <code>!</code> prefix or <code>/</code> suffix, it will be preserved in the output. <source> will be an absolute path when referring to the file -configured by <tt>core.excludesfile</tt>, or relative to the repository root -when referring to <tt>.git/info/exclude</tt> or a per-directory exclude file.</p></div> -<div class="paragraph"><p>If <tt>-z</tt> is specified, the pathnames in the output are delimited by the -null character; if <tt>--verbose</tt> is also specified then null characters +configured by <code>core.excludesfile</code>, or relative to the repository root +when referring to <code>.git/info/exclude</code> or a per-directory exclude file.</p></div> +<div class="paragraph"><p>If <code>-z</code> is specified, the pathnames in the output are delimited by the +null character; if <code>--verbose</code> is also specified then null characters are also used instead of colons and hard tabs:</p></div> <div class="paragraph"><p><source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL></p></div> -<div class="paragraph"><p>If <tt>-n</tt> or <tt>--non-matching</tt> are specified, non-matching pathnames will +<div class="paragraph"><p>If <code>-n</code> or <code>--non-matching</code> are specified, non-matching pathnames will also be output, in which case all fields in each output record except for <pathname> will be empty. This can be useful when running non-interactively, so that files can be incrementally streamed to @@ -861,7 +859,7 @@ not. (Without this option, it would be impossible to tell whether the absence of output for a given file meant that it didn’t match any pattern, or that the output hadn’t been generated yet.)</p></div> -<div class="paragraph"><p>Buffering happens as documented under the <tt>GIT_FLUSH</tt> option in +<div class="paragraph"><p>Buffering happens as documented under the <code>GIT_FLUSH</code> option in <a href="git.html">git(1)</a>. The caller is responsible for avoiding deadlocks caused by overfilling an input buffer or reading from an empty output buffer.</p></div>
diff --git a/git-check-mailmap.html b/git-check-mailmap.html index 81e71f9..c492dcf 100644 --- a/git-check-mailmap.html +++ b/git-check-mailmap.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-check-mailmap(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -759,7 +757,7 @@ <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"><p>For each “Name <user@host>” or “<user@host>” from the command-line -or standard input (when using <tt>--stdin</tt>), look up the person’s canonical name +or standard input (when using <code>--stdin</code>), look up the person’s canonical name and email address (see "Mapping Authors" below). If found, print them; otherwise print the input as-is.</p></div> </div> @@ -791,7 +789,7 @@ <div class="sect1"> <h2 id="_mapping_authors">MAPPING AUTHORS</h2> <div class="sectionbody"> -<div class="paragraph"><p>If the file <tt>.mailmap</tt> exists at the toplevel of the repository, or at +<div class="paragraph"><p>If the file <code>.mailmap</code> exists at the toplevel of the repository, or at the location pointed to by the mailmap.file or mailmap.blob configuration options, it is used to map author and committer names and email addresses to @@ -803,7 +801,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>Proper Name <commit@email.xx></tt></pre> +<pre><code>Proper Name <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>The more complex forms are:</p></div> @@ -811,7 +809,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt><proper@email.xx> <commit@email.xx></tt></pre> +<pre><code><proper@email.xx> <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>which allows mailmap to replace only the email part of a commit, and:</p></div> @@ -819,7 +817,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>Proper Name <proper@email.xx> <commit@email.xx></tt></pre> +<pre><code>Proper Name <proper@email.xx> <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>which allows mailmap to replace both the name and the email of a @@ -828,7 +826,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>Proper Name <proper@email.xx> Commit Name <commit@email.xx></tt></pre> +<pre><code>Proper Name <proper@email.xx> Commit Name <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>which allows mailmap to replace both the name and the email of a @@ -837,41 +835,41 @@ and Joe, whose names appear in the repository under several forms:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Joe Developer <joe@example.com> +<pre><code>Joe Developer <joe@example.com> Joe R. Developer <joe@example.com> Jane Doe <jane@example.com> Jane Doe <jane@laptop.(none)> -Jane D. <jane@desktop.(none)></tt></pre> +Jane D. <jane@desktop.(none)></code></pre> </div></div> <div class="paragraph"><p>Now suppose that Joe wants his middle name initial used, and Jane -prefers her family name fully spelled out. A proper <tt>.mailmap</tt> file +prefers her family name fully spelled out. A proper <code>.mailmap</code> file would look like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Jane Doe <jane@desktop.(none)> -Joe R. Developer <joe@example.com></tt></pre> +<pre><code>Jane Doe <jane@desktop.(none)> +Joe R. Developer <joe@example.com></code></pre> </div></div> -<div class="paragraph"><p>Note how there is no need for an entry for <tt><jane@laptop.(none)></tt>, because the +<div class="paragraph"><p>Note how there is no need for an entry for <code><jane@laptop.(none)></code>, because the real name of that author is already correct.</p></div> <div class="paragraph"><p>Example 2: Your repository contains commits from the following authors:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>nick1 <bugs@company.xx> +<pre><code>nick1 <bugs@company.xx> nick2 <bugs@company.xx> nick2 <nick2@company.xx> santa <me@company.xx> claus <me@company.xx> -CTO <cto@coompany.xx></tt></pre> +CTO <cto@coompany.xx></code></pre> </div></div> -<div class="paragraph"><p>Then you might want a <tt>.mailmap</tt> file that looks like:</p></div> +<div class="paragraph"><p>Then you might want a <code>.mailmap</code> file that looks like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><cto@company.xx> <cto@coompany.xx> +<pre><code><cto@company.xx> <cto@coompany.xx> Some Dude <some@dude.xx> nick1 <bugs@company.xx> Other Author <other@author.xx> nick2 <bugs@company.xx> Other Author <other@author.xx> <nick2@company.xx> -Santa Claus <santa.claus@northpole.xx> <me@company.xx></tt></pre> +Santa Claus <santa.claus@northpole.xx> <me@company.xx></code></pre> </div></div> <div class="paragraph"><p>Use hash <em>#</em> for comments that are either on their own line, or after the email address.</p></div>
diff --git a/git-check-ref-format.html b/git-check-ref-format.html index 2ae609e..26443c3 100644 --- a/git-check-ref-format.html +++ b/git-check-ref-format.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-check-ref-format(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -764,72 +762,72 @@ <div class="paragraph"><p>Checks if a given <em>refname</em> is acceptable, and exits with a non-zero status if it is not.</p></div> <div class="paragraph"><p>A reference is used in Git to specify branches and tags. A -branch head is stored in the <tt>refs/heads</tt> hierarchy, while -a tag is stored in the <tt>refs/tags</tt> hierarchy of the ref namespace -(typically in <tt>$GIT_DIR/refs/heads</tt> and <tt>$GIT_DIR/refs/tags</tt> -directories or, as entries in file <tt>$GIT_DIR/packed-refs</tt> -if refs are packed by <tt>git gc</tt>).</p></div> +branch head is stored in the <code>refs/heads</code> hierarchy, while +a tag is stored in the <code>refs/tags</code> hierarchy of the ref namespace +(typically in <code>$GIT_DIR/refs/heads</code> and <code>$GIT_DIR/refs/tags</code> +directories or, as entries in file <code>$GIT_DIR/packed-refs</code> +if refs are packed by <code>git gc</code>).</p></div> <div class="paragraph"><p>Git imposes the following rules on how references are named:</p></div> <div class="olist arabic"><ol class="arabic"> <li> <p> -They can include slash <tt>/</tt> for hierarchical (directory) +They can include slash <code>/</code> for hierarchical (directory) grouping, but no slash-separated component can begin with a - dot <tt>.</tt> or end with the sequence <tt>.lock</tt>. + dot <code>.</code> or end with the sequence <code>.lock</code>. </p> </li> <li> <p> -They must contain at least one <tt>/</tt>. This enforces the presence of a - category like <tt>heads/</tt>, <tt>tags/</tt> etc. but the actual names are not - restricted. If the <tt>--allow-onelevel</tt> option is used, this rule +They must contain at least one <code>/</code>. This enforces the presence of a + category like <code>heads/</code>, <code>tags/</code> etc. but the actual names are not + restricted. If the <code>--allow-onelevel</code> option is used, this rule is waived. </p> </li> <li> <p> -They cannot have two consecutive dots <tt>..</tt> anywhere. +They cannot have two consecutive dots <code>..</code> anywhere. </p> </li> <li> <p> They cannot have ASCII control characters (i.e. bytes whose - values are lower than \040, or \177 <tt>DEL</tt>), space, tilde <tt>~</tt>, - caret <tt>^</tt>, or colon <tt>:</tt> anywhere. + values are lower than \040, or \177 <code>DEL</code>), space, tilde <code>~</code>, + caret <code>^</code>, or colon <code>:</code> anywhere. </p> </li> <li> <p> -They cannot have question-mark <tt>?</tt>, asterisk <tt>*</tt>, or open - bracket <tt>[</tt> anywhere. See the <tt>--refspec-pattern</tt> option below for +They cannot have question-mark <code>?</code>, asterisk <code>*</code>, or open + bracket <code>[</code> anywhere. See the <code>--refspec-pattern</code> option below for an exception to this rule. </p> </li> <li> <p> -They cannot begin or end with a slash <tt>/</tt> or contain multiple - consecutive slashes (see the <tt>--normalize</tt> option below for an +They cannot begin or end with a slash <code>/</code> or contain multiple + consecutive slashes (see the <code>--normalize</code> option below for an exception to this rule) </p> </li> <li> <p> -They cannot end with a dot <tt>.</tt>. +They cannot end with a dot <code>.</code>. </p> </li> <li> <p> -They cannot contain a sequence <tt>@{</tt>. +They cannot contain a sequence <code>@{</code>. </p> </li> <li> <p> -They cannot be the single character <tt>@</tt>. +They cannot be the single character <code>@</code>. </p> </li> <li> <p> -They cannot contain a <tt>\</tt>. +They cannot contain a <code>\</code>. </p> </li> </ol></div> @@ -840,20 +838,20 @@ <div class="olist arabic"><ol class="arabic"> <li> <p> -A double-dot <tt>..</tt> is often used as in <tt>ref1..ref2</tt>, and in some - contexts this notation means <tt>^ref1 ref2</tt> (i.e. not in - <tt>ref1</tt> and in <tt>ref2</tt>). +A double-dot <code>..</code> is often used as in <code>ref1..ref2</code>, and in some + contexts this notation means <code>^ref1 ref2</code> (i.e. not in + <code>ref1</code> and in <code>ref2</code>). </p> </li> <li> <p> -A tilde <tt>~</tt> and caret <tt>^</tt> are used to introduce the postfix +A tilde <code>~</code> and caret <code>^</code> are used to introduce the postfix <em>nth parent</em> and <em>peel onion</em> operation. </p> </li> <li> <p> -A colon <tt>:</tt> is used as in <tt>srcref:dstref</tt> to mean "use srcref’s +A colon <code>:</code> is used as in <code>srcref:dstref</code> to mean "use srcref’s value and store it in dstref" in fetch and push operations. It may also be used to select a specific object such as with <em>git cat-file</em>: "git cat-file blob v1.3.3:refs.c". @@ -861,12 +859,12 @@ </li> <li> <p> -at-open-brace <tt>@{</tt> is used as a notation to access a reflog entry. +at-open-brace <code>@{</code> is used as a notation to access a reflog entry. </p> </li> </ol></div> -<div class="paragraph"><p>With the <tt>--branch</tt> option, it expands the “previous branch syntax” -<tt>@{-n}</tt>. For example, <tt>@{-1}</tt> is a way to refer the last branch you +<div class="paragraph"><p>With the <code>--branch</code> option, it expands the “previous branch syntax” +<code>@{-n}</code>. For example, <code>@{-1}</code> is a way to refer the last branch you were on. This option should be used by porcelains to accept this syntax anywhere a branch name is expected, so they can act as if you typed the branch name.</p></div> @@ -882,8 +880,8 @@ <dd> <p> Controls whether one-level refnames are accepted (i.e., - refnames that do not contain multiple <tt>/</tt>-separated - components). The default is <tt>--no-allow-onelevel</tt>. + refnames that do not contain multiple <code>/</code>-separated + components). The default is <code>--no-allow-onelevel</code>. </p> </dd> <dt class="hdlist1"> @@ -893,9 +891,9 @@ <p> Interpret <refname> as a reference name pattern for a refspec (as used with remote repositories). If this option is - enabled, <refname> is allowed to contain a single <tt>*</tt> + enabled, <refname> is allowed to contain a single <code>*</code> in place of a one full pathname component (e.g., - <tt>foo/*/bar</tt> but not <tt>foo/bar*</tt>). + <code>foo/*/bar</code> but not <code>foo/bar*</code>). </p> </dd> <dt class="hdlist1"> @@ -903,12 +901,12 @@ </dt> <dd> <p> - Normalize <em>refname</em> by removing any leading slash (<tt>/</tt>) + Normalize <em>refname</em> by removing any leading slash (<code>/</code>) characters and collapsing runs of adjacent slashes between name components into a single slash. Iff the normalized refname is valid then print it to standard output and exit - with a status of 0. (<tt>--print</tt> is a deprecated way to spell - <tt>--normalize</tt>.) + with a status of 0. (<code>--print</code> is a deprecated way to spell + <code>--normalize</code>.) </p> </dd> </dl></div> @@ -924,7 +922,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git check-ref-format --branch @{-1}</tt></pre> +<pre><code>$ git check-ref-format --branch @{-1}</code></pre> </div></div> </li> <li> @@ -933,8 +931,8 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ ref=$(git check-ref-format --normalize "refs/heads/$newbranch") || -die "we do not like '$newbranch' as a branch name."</tt></pre> +<pre><code>$ ref=$(git check-ref-format --normalize "refs/heads/$newbranch") || +die "we do not like '$newbranch' as a branch name."</code></pre> </div></div> </li> </ul></div>
diff --git a/git-checkout-index.html b/git-checkout-index.html index ae2ea04..5b08d6b 100644 --- a/git-checkout-index.html +++ b/git-checkout-index.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-checkout-index(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -872,7 +870,7 @@ </dt> <dd> <p> - Only meaningful with <tt>--stdin</tt>; paths are separated with + Only meaningful with <code>--stdin</code>; paths are separated with NUL character instead of LF. </p> </dd> @@ -886,33 +884,33 @@ </dd> </dl></div> <div class="paragraph"><p>The order of the flags used to matter, but not anymore.</p></div> -<div class="paragraph"><p>Just doing <tt>git checkout-index</tt> does nothing. You probably meant -<tt>git checkout-index -a</tt>. And if you want to force it, you want -<tt>git checkout-index -f -a</tt>.</p></div> +<div class="paragraph"><p>Just doing <code>git checkout-index</code> does nothing. You probably meant +<code>git checkout-index -a</code>. And if you want to force it, you want +<code>git checkout-index -f -a</code>.</p></div> <div class="paragraph"><p>Intuitiveness is not the goal here. Repeatability is. The reason for the "no arguments means no work" behavior is that from scripts you are supposed to be able to do:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ find . -name '*.h' -print0 | xargs -0 git checkout-index -f --</tt></pre> +<pre><code>$ find . -name '*.h' -print0 | xargs -0 git checkout-index -f --</code></pre> </div></div> -<div class="paragraph"><p>which will force all existing <tt>*.h</tt> files to be replaced with their +<div class="paragraph"><p>which will force all existing <code>*.h</code> files to be replaced with their cached copies. If an empty command line implied "all", then this would force-refresh everything in the index, which was not the point. But since <em>git checkout-index</em> accepts --stdin it would be faster to use:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin</tt></pre> +<pre><code>$ find . -name '*.h' -print0 | git checkout-index -f -z --stdin</code></pre> </div></div> -<div class="paragraph"><p>The <tt>--</tt> is just a good idea when you know the rest will be filenames; -it will prevent problems with a filename of, for example, <tt>-a</tt>. -Using <tt>--</tt> is probably a good policy in scripts.</p></div> +<div class="paragraph"><p>The <code>--</code> is just a good idea when you know the rest will be filenames; +it will prevent problems with a filename of, for example, <code>-a</code>. +Using <code>--</code> is probably a good policy in scripts.</p></div> </div> </div> <div class="sect1"> <h2 id="_using_temp_or_stage_all">Using --temp or --stage=all</h2> <div class="sectionbody"> -<div class="paragraph"><p>When <tt>--temp</tt> is used (or implied by <tt>--stage=all</tt>) +<div class="paragraph"><p>When <code>--temp</code> is used (or implied by <code>--stage=all</code>) <em>git checkout-index</em> will create a temporary file for each index entry being checked out. The index will not be updated with stat information. These options can be useful if the caller needs all @@ -926,8 +924,8 @@ <p> tempname TAB path RS </p> -<div class="paragraph"><p>The first format is what gets used when <tt>--stage</tt> is omitted or -is not <tt>--stage=all</tt>. The field tempname is the temporary file +<div class="paragraph"><p>The first format is what gets used when <code>--stage</code> is omitted or +is not <code>--stage=all</code>. The field tempname is the temporary file name holding the file content and path is the tracked path name in the index. Only the requested entries are output.</p></div> </li> @@ -935,10 +933,10 @@ <p> stage1temp SP stage2temp SP stage3tmp TAB path RS </p> -<div class="paragraph"><p>The second format is what gets used when <tt>--stage=all</tt>. The three +<div class="paragraph"><p>The second format is what gets used when <code>--stage=all</code>. The three stage temporary fields (stage1temp, stage2temp, stage3temp) list the name of the temporary file if there is a stage entry in the index -or <tt>.</tt> if there is no stage entry. Paths which only have a stage 0 +or <code>.</code> if there is no stage entry. Paths which only have a stage 0 entry will always be omitted from the output.</p></div> </li> </ol></div> @@ -963,7 +961,7 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh</tt></pre> +<pre><code>$ git checkout-index -n -f -a && git update-index --ignore-missing --refresh</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -977,9 +975,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout-index --prefix=git-export-dir/ -a</tt></pre> +<pre><code>$ git checkout-index --prefix=git-export-dir/ -a</code></pre> </div></div> -<div class="paragraph"><p><tt>git checkout-index</tt> will "export" the index into the specified +<div class="paragraph"><p><code>git checkout-index</code> will "export" the index into the specified directory.</p></div> <div class="paragraph"><p>The final "/" is important. The exported name is literally just prefixed with the specified string. Contrast this with the @@ -991,10 +989,10 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout-index --prefix=.merged- Makefile</tt></pre> +<pre><code>$ git checkout-index --prefix=.merged- Makefile</code></pre> </div></div> -<div class="paragraph"><p>This will check out the currently cached copy of <tt>Makefile</tt> -into the file <tt>.merged-Makefile</tt>.</p></div> +<div class="paragraph"><p>This will check out the currently cached copy of <code>Makefile</code> +into the file <code>.merged-Makefile</code>.</p></div> </dd> </dl></div> </div>
diff --git a/git-checkout.html b/git-checkout.html index 72cd68c..3d2da8a 100644 --- a/git-checkout.html +++ b/git-checkout.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-checkout(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -765,7 +763,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Updates files in the working tree to match the version in the index or the specified tree. If no paths are given, <em>git checkout</em> will -also update <tt>HEAD</tt> to set the specified branch as the current +also update <code>HEAD</code> to set the specified branch as the current branch.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> @@ -784,7 +782,7 @@ equivalent to</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout -b <branch> --track <remote>/<branch></tt></pre> +<pre><code>$ git checkout -b <branch> --track <remote>/<branch></code></pre> </div></div> <div class="paragraph"><p>You could omit <branch>, in which case the command degenerates to "check out the current branch", which is a glorified no-op with a @@ -796,19 +794,19 @@ </dt> <dd> <p> - Specifying <tt>-b</tt> causes a new branch to be created as if + Specifying <code>-b</code> causes a new branch to be created as if <a href="git-branch.html">git-branch(1)</a> were called and then checked out. In - this case you can use the <tt>--track</tt> or <tt>--no-track</tt> options, + this case you can use the <code>--track</code> or <code>--no-track</code> options, which will be passed to <em>git branch</em>. As a convenience, - <tt>--track</tt> without <tt>-b</tt> implies branch creation; see the - description of <tt>--track</tt> below. + <code>--track</code> without <code>-b</code> implies branch creation; see the + description of <code>--track</code> below. </p> -<div class="paragraph"><p>If <tt>-B</tt> is given, <new_branch> is created if it doesn’t exist; otherwise, it +<div class="paragraph"><p>If <code>-B</code> is given, <new_branch> is created if it doesn’t exist; otherwise, it is reset. This is the transactional equivalent of</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git branch -f <branch> [<start point>] -$ git checkout <branch></tt></pre> +<pre><code>$ git branch -f <branch> [<start point>] +$ git checkout <branch></code></pre> </div></div> <div class="paragraph"><p>that is to say, the branch is not reset/created unless "git checkout" is successful.</p></div> @@ -828,9 +826,9 @@ tree will be the state recorded in the commit plus the local modifications. </p> -<div class="paragraph"><p>When the <commit> argument is a branch name, the <tt>--detach</tt> option can -be used to detach HEAD at the tip of the branch (<tt>git checkout -<branch></tt> would check out that branch without detaching HEAD).</p></div> +<div class="paragraph"><p>When the <commit> argument is a branch name, the <code>--detach</code> option can +be used to detach HEAD at the tip of the branch (<code>git checkout +<branch></code> would check out that branch without detaching HEAD).</p></div> <div class="paragraph"><p>Omitting <branch> detaches HEAD at the tip of the current branch.</p></div> </dd> <dt class="hdlist1"> @@ -838,10 +836,10 @@ </dt> <dd> <p> - When <paths> or <tt>--patch</tt> are given, <em>git checkout</em> does <strong>not</strong> + When <paths> or <code>--patch</code> are given, <em>git checkout</em> does <strong>not</strong> switch branches. It updates the named paths in the working tree from the index file or from a named <tree-ish> (most often a - commit). In this case, the <tt>-b</tt> and <tt>--track</tt> options are + commit). In this case, the <code>-b</code> and <code>--track</code> options are meaningless and giving either of them results in an error. The <tree-ish> argument can be used to specify a specific tree-ish (i.e. commit, tag or tree) to update the index for the given @@ -850,9 +848,9 @@ <div class="paragraph"><p>The index may contain unmerged entries because of a previous failed merge. By default, if you try to check out such an entry from the index, the checkout operation will fail and nothing will be checked out. -Using <tt>-f</tt> will ignore these unmerged entries. The contents from a +Using <code>-f</code> will ignore these unmerged entries. The contents from a specific side of the merge can be checked out of the index by -using <tt>--ours</tt> or <tt>--theirs</tt>. With <tt>-m</tt>, changes made to the working tree +using <code>--ours</code> or <code>--theirs</code>. With <code>-m</code>, changes made to the working tree file can be discarded to re-create the original conflicted merge result.</p></div> </dd> </dl></div> @@ -1003,7 +1001,7 @@ </dt> <dd> <p> - In sparse checkout mode, <tt>git checkout -- <paths></tt> would + In sparse checkout mode, <code>git checkout -- <paths></code> would update only entries matched by <paths> and sparse patterns in $GIT_DIR/info/sparse-checkout. This option ignores the sparse patterns and adds back any files in <paths>. @@ -1028,7 +1026,7 @@ </p> <div class="paragraph"><p>When a merge conflict happens, the index entries for conflicting paths are left unmerged, and you need to resolve the conflicts -and mark the resolved paths with <tt>git add</tt> (or <tt>git rm</tt> if the merge +and mark the resolved paths with <code>git add</code> (or <code>git rm</code> if the merge should result in deletion of the path).</p></div> <div class="paragraph"><p>When checking out paths from the index, this option lets you recreate the conflicted merge in the specified paths.</p></div> @@ -1058,9 +1056,9 @@ tree. The chosen hunks are then applied in reverse to the working tree (and if a <tree-ish> was specified, the index). </p> -<div class="paragraph"><p>This means that you can use <tt>git checkout -p</tt> to selectively discard +<div class="paragraph"><p>This means that you can use <code>git checkout -p</code> to selectively discard edits from your current working tree. See the “Interactive Mode” -section of <a href="git-add.html">git-add(1)</a> to learn how to operate the <tt>--patch</tt> mode.</p></div> +section of <a href="git-add.html">git-add(1)</a> to learn how to operate the <code>--patch</code> mode.</p></div> </dd> <dt class="hdlist1"> <branch> @@ -1073,12 +1071,12 @@ commit, your HEAD becomes "detached" and you are no longer on any branch (see below for details). </p> -<div class="paragraph"><p>As a special case, the <tt>"@{-N}"</tt> syntax for the N-th last branch/commit +<div class="paragraph"><p>As a special case, the <code>"@{-N}"</code> syntax for the N-th last branch/commit checks out branches (instead of detaching). You may also specify -<tt>-</tt> which is synonymous with <tt>"@{-1}"</tt>.</p></div> -<div class="paragraph"><p>As a further special case, you may use <tt>"A...B"</tt> as a shortcut for the -merge base of <tt>A</tt> and <tt>B</tt> if there is exactly one merge base. You can -leave out at most one of <tt>A</tt> and <tt>B</tt>, in which case it defaults to <tt>HEAD</tt>.</p></div> +<code>-</code> which is synonymous with <code>"@{-1}"</code>.</p></div> +<div class="paragraph"><p>As a further special case, you may use <code>"A...B"</code> as a shortcut for the +merge base of <code>A</code> and <code>B</code> if there is exactly one merge base. You can +leave out at most one of <code>A</code> and <code>B</code>, in which case it defaults to <code>HEAD</code>.</p></div> </dd> <dt class="hdlist1"> <new_branch> @@ -1117,13 +1115,13 @@ commits, one of them tagged, and with branch <em>master</em> checked out:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> HEAD (refers to branch 'master') +<pre><code> HEAD (refers to branch 'master') | v a---b---c branch 'master' (refers to commit 'c') ^ | - tag 'v2.0' (refers to commit 'b')</tt></pre> + tag 'v2.0' (refers to commit 'b')</code></pre> </div></div> <div class="paragraph"><p>When a commit is created in this state, the branch is updated to refer to the new commit. Specifically, <em>git commit</em> creates a new commit <em>d</em>, whose @@ -1132,7 +1130,7 @@ to commit <em>d</em>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ edit; git add; git commit +<pre><code>$ edit; git add; git commit HEAD (refers to branch 'master') | @@ -1140,7 +1138,7 @@ a---b---c---d branch 'master' (refers to commit 'd') ^ | - tag 'v2.0' (refers to commit 'b')</tt></pre> + tag 'v2.0' (refers to commit 'b')</code></pre> </div></div> <div class="paragraph"><p>It is sometimes useful to be able to checkout a commit that is not at the tip of any named branch, or even to create a new commit that is not @@ -1148,7 +1146,7 @@ checkout commit <em>b</em> (here we show two ways this may be done):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout v2.0 # or +<pre><code>$ git checkout v2.0 # or $ git checkout master^^ HEAD (refers to commit 'b') @@ -1157,7 +1155,7 @@ a---b---c---d branch 'master' (refers to commit 'd') ^ | - tag 'v2.0' (refers to commit 'b')</tt></pre> + tag 'v2.0' (refers to commit 'b')</code></pre> </div></div> <div class="paragraph"><p>Notice that regardless of which checkout command we use, HEAD now refers directly to commit <em>b</em>. This is known as being in detached HEAD state. @@ -1165,7 +1163,7 @@ referring to a named branch. Let’s see what happens when we create a commit:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ edit; git add; git commit +<pre><code>$ edit; git add; git commit HEAD (refers to commit 'e') | @@ -1175,13 +1173,13 @@ a---b---c---d branch 'master' (refers to commit 'd') ^ | - tag 'v2.0' (refers to commit 'b')</tt></pre> + tag 'v2.0' (refers to commit 'b')</code></pre> </div></div> <div class="paragraph"><p>There is now a new commit <em>e</em>, but it is referenced only by HEAD. We can of course add yet another commit in this state:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ edit; git add; git commit +<pre><code>$ edit; git add; git commit HEAD (refers to commit 'f') | @@ -1191,13 +1189,13 @@ a---b---c---d branch 'master' (refers to commit 'd') ^ | - tag 'v2.0' (refers to commit 'b')</tt></pre> + tag 'v2.0' (refers to commit 'b')</code></pre> </div></div> <div class="paragraph"><p>In fact, we can perform all the normal Git operations. But, let’s look at what happens when we then checkout master:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout master +<pre><code>$ git checkout master HEAD (refers to branch 'master') e---f | @@ -1205,7 +1203,7 @@ a---b---c---d branch 'master' (refers to commit 'd') ^ | - tag 'v2.0' (refers to commit 'b')</tt></pre> + tag 'v2.0' (refers to commit 'b')</code></pre> </div></div> <div class="paragraph"><p>It is important to realize that at this point nothing refers to commit <em>f</em>. Eventually commit <em>f</em> (and by extension commit <em>e</em>) will be deleted @@ -1214,9 +1212,9 @@ any of these will create a reference to it:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout -b foo <b><1></b> +<pre><code>$ git checkout -b foo <b><1></b> $ git branch foo <b><2></b> -$ git tag foo <b><3></b></tt></pre> +$ git tag foo <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1245,8 +1243,8 @@ can use either of these commands:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git reflog -2 HEAD # or -$ git log -g -2 HEAD</tt></pre> +<pre><code>$ git reflog -2 HEAD # or +$ git log -g -2 HEAD</code></pre> </div></div> </div> </div> @@ -1256,16 +1254,16 @@ <div class="olist arabic"><ol class="arabic"> <li> <p> -The following sequence checks out the <tt>master</tt> branch, reverts -the <tt>Makefile</tt> to two revisions back, deletes hello.c by +The following sequence checks out the <code>master</code> branch, reverts +the <code>Makefile</code> to two revisions back, deletes hello.c by mistake, and gets it back from the index. </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout master <b><1></b> +<pre><code>$ git checkout master <b><1></b> $ git checkout master~2 Makefile <b><2></b> $ rm -f hello.c -$ git checkout hello.c <b><3></b></tt></pre> +$ git checkout hello.c <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1286,18 +1284,18 @@ you can say</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout -- '*.c'</tt></pre> +<pre><code>$ git checkout -- '*.c'</code></pre> </div></div> -<div class="paragraph"><p>Note the quotes around <tt>*.c</tt>. The file <tt>hello.c</tt> will also be +<div class="paragraph"><p>Note the quotes around <code>*.c</code>. The file <code>hello.c</code> will also be checked out, even though it is no longer in the working tree, because the file globbing is used to match entries in the index (not in the working tree by the shell).</p></div> -<div class="paragraph"><p>If you have an unfortunate branch that is named <tt>hello.c</tt>, this +<div class="paragraph"><p>If you have an unfortunate branch that is named <code>hello.c</code>, this step would be confused as an instruction to switch to that branch. You should instead write:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout -- hello.c</tt></pre> +<pre><code>$ git checkout -- hello.c</code></pre> </div></div> </li> </ol></div> @@ -1309,47 +1307,47 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout mytopic</tt></pre> +<pre><code>$ git checkout mytopic</code></pre> </div></div> <div class="paragraph"><p>However, your "wrong" branch and correct "mytopic" branch may differ in files that you have modified locally, in which case the above checkout would fail like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout mytopic -error: You have local changes to 'frotz'; not switching branches.</tt></pre> +<pre><code>$ git checkout mytopic +error: You have local changes to 'frotz'; not switching branches.</code></pre> </div></div> -<div class="paragraph"><p>You can give the <tt>-m</tt> flag to the command, which would try a +<div class="paragraph"><p>You can give the <code>-m</code> flag to the command, which would try a three-way merge:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout -m mytopic -Auto-merging frotz</tt></pre> +<pre><code>$ git checkout -m mytopic +Auto-merging frotz</code></pre> </div></div> <div class="paragraph"><p>After this three-way merge, the local modifications are <em>not</em> -registered in your index file, so <tt>git diff</tt> would show you what +registered in your index file, so <code>git diff</code> would show you what changes you made since the tip of the new branch.</p></div> </li> <li> <p> When a merge conflict happens during switching branches with -the <tt>-m</tt> option, you would see something like this: +the <code>-m</code> option, you would see something like this: </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout -m mytopic +<pre><code>$ git checkout -m mytopic Auto-merging frotz ERROR: Merge conflict in frotz -fatal: merge program failed</tt></pre> +fatal: merge program failed</code></pre> </div></div> -<div class="paragraph"><p>At this point, <tt>git diff</tt> shows the changes cleanly merged as in +<div class="paragraph"><p>At this point, <code>git diff</code> shows the changes cleanly merged as in the previous example, as well as the changes in the conflicted files. Edit and resolve the conflict and mark it resolved with -<tt>git add</tt> as usual:</p></div> +<code>git add</code> as usual:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ edit frotz -$ git add frotz</tt></pre> +<pre><code>$ edit frotz +$ git add frotz</code></pre> </div></div> </li> </ol></div>
diff --git a/git-cherry-pick.html b/git-cherry-pick.html index 2bcaa81..a6cae0b 100644 --- a/git-cherry-pick.html +++ b/git-cherry-pick.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-cherry-pick(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -770,13 +768,13 @@ <div class="olist arabic"><ol class="arabic"> <li> <p> -The current branch and <tt>HEAD</tt> pointer stay at the last commit +The current branch and <code>HEAD</code> pointer stay at the last commit successfully made. </p> </li> <li> <p> -The <tt>CHERRY_PICK_HEAD</tt> ref is set to point at the commit that +The <code>CHERRY_PICK_HEAD</code> ref is set to point at the commit that introduced the change that is difficult to apply. </p> </li> @@ -792,7 +790,7 @@ versions, as described in the "TRUE MERGE" section of <a href="git-merge.html">git-merge(1)</a>. The working tree files will include a description of the conflict bracketed by the usual - conflict markers <tt><<<<<<<</tt> and <tt>>>>>>>></tt>. + conflict markers <code><<<<<<<</code> and <code>>>>>>>></code>. </p> </li> <li> @@ -860,9 +858,9 @@ </dt> <dd> <p> - It used to be that the command defaulted to do <tt>-x</tt> - described above, and <tt>-r</tt> was to disable it. Now the - default is not to do <tt>-x</tt> so this option is a no-op. + It used to be that the command defaulted to do <code>-x</code> + described above, and <code>-r</code> was to disable it. Now the + default is not to do <code>-x</code> so this option is a no-op. </p> </dd> <dt class="hdlist1"> @@ -937,8 +935,8 @@ <dd> <p> By default, cherry-picking an empty commit will fail, - indicating that an explicit invocation of <tt>git commit - --allow-empty</tt> is required. This option overrides that + indicating that an explicit invocation of <code>git commit + --allow-empty</code> is required. This option overrides that behavior, allowing empty commits to be preserved automatically in a cherry-pick. Note that when "--ff" is in effect, empty commits that meet the "fast-forward" requirement will be kept @@ -946,7 +944,7 @@ keeps commits that were initially empty (i.e. the commit recorded the same tree as its parent). Commits which are made empty due to a previous commit are dropped. To force the inclusion of those commits - use <tt>--keep-redundant-commits</tt>. + use <code>--keep-redundant-commits</code>. </p> </dd> <dt class="hdlist1"> @@ -967,7 +965,7 @@ If a commit being cherry picked duplicates a commit already in the current history, it will become empty. By default these redundant commits are ignored. This option overrides that behavior and - creates an empty commit object. Implies <tt>--allow-empty</tt>. + creates an empty commit object. Implies <code>--allow-empty</code>. </p> </dd> <dt class="hdlist1"> @@ -1035,7 +1033,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>git cherry-pick master</tt> +<code>git cherry-pick master</code> </dt> <dd> <p> @@ -1044,10 +1042,10 @@ </p> </dd> <dt class="hdlist1"> -<tt>git cherry-pick ..master</tt> +<code>git cherry-pick ..master</code> </dt> <dt class="hdlist1"> -<tt>git cherry-pick ^HEAD master</tt> +<code>git cherry-pick ^HEAD master</code> </dt> <dd> <p> @@ -1056,22 +1054,22 @@ </p> </dd> <dt class="hdlist1"> -<tt>git cherry-pick maint next ^master</tt> +<code>git cherry-pick maint next ^master</code> </dt> <dt class="hdlist1"> -<tt>git cherry-pick maint master..next</tt> +<code>git cherry-pick maint master..next</code> </dt> <dd> <p> Apply the changes introduced by all commits that are ancestors of maint or next, but not master or any of its - ancestors. Note that the latter does not mean <tt>maint</tt> and - everything between <tt>master</tt> and <tt>next</tt>; specifically, - <tt>maint</tt> will not be used if it is included in <tt>master</tt>. + ancestors. Note that the latter does not mean <code>maint</code> and + everything between <code>master</code> and <code>next</code>; specifically, + <code>maint</code> will not be used if it is included in <code>master</code>. </p> </dd> <dt class="hdlist1"> -<tt>git cherry-pick master~4 master~2</tt> +<code>git cherry-pick master~4 master~2</code> </dt> <dd> <p> @@ -1081,7 +1079,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git cherry-pick -n master~1 next</tt> +<code>git cherry-pick -n master~1 next</code> </dt> <dd> <p> @@ -1092,7 +1090,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git cherry-pick --ff ..next</tt> +<code>git cherry-pick --ff ..next</code> </dt> <dd> <p> @@ -1104,7 +1102,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git rev-list --reverse master -- README | git cherry-pick -n --stdin</tt> +<code>git rev-list --reverse master -- README | git cherry-pick -n --stdin</code> </dt> <dd> <p> @@ -1120,15 +1118,15 @@ again, this time exercising more care about matching up context lines.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git cherry-pick topic^ <b><1></b> +<pre><code>$ git cherry-pick topic^ <b><1></b> $ git diff <b><2></b> $ git reset --merge ORIG_HEAD <b><3></b> -$ git cherry-pick -Xpatience topic^ <b><4></b></tt></pre> +$ git cherry-pick -Xpatience topic^ <b><4></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> <p> -apply the change that would be shown by <tt>git show topic^</tt>. +apply the change that would be shown by <code>git show topic^</code>. In this example, the patch does not apply cleanly, so information about the conflict is written to the index and working tree and no new commit results. @@ -1148,7 +1146,7 @@ </li> <li> <p> -try to apply the change introduced by <tt>topic^</tt> again, +try to apply the change introduced by <code>topic^</code> again, spending extra time to avoid mistakes based on incorrectly matching context lines. </p>
diff --git a/git-cherry.html b/git-cherry.html index 23d4d15..e7bdfd5 100644 --- a/git-cherry.html +++ b/git-cherry.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-cherry(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -758,14 +756,14 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>Determine whether there are commits in <tt><head>..<upstream></tt> that are -equivalent to those in the range <tt><limit>..<head></tt>.</p></div> +<div class="paragraph"><p>Determine whether there are commits in <code><head>..<upstream></code> that are +equivalent to those in the range <code><limit>..<head></code>.</p></div> <div class="paragraph"><p>The equivalence test is based on the diff, after removing whitespace and line numbers. git-cherry therefore detects when commits have been "copied" by means of <a href="git-cherry-pick.html">git-cherry-pick(1)</a>, <a href="git-am.html">git-am(1)</a> or <a href="git-rebase.html">git-rebase(1)</a>.</p></div> -<div class="paragraph"><p>Outputs the SHA1 of every commit in <tt><limit>..<head></tt>, prefixed with -<tt>-</tt> for commits that have an equivalent in <upstream>, and <tt>+</tt> for +<div class="paragraph"><p>Outputs the SHA1 of every commit in <code><limit>..<head></code>, prefixed with +<code>-</code> for commits that have an equivalent in <upstream>, and <code>+</code> for commits that do not.</p></div> </div> </div> @@ -820,17 +818,17 @@ create and send a topic branch like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout -b topic origin/master +<pre><code>$ git checkout -b topic origin/master # work and create some commits $ git format-patch origin/master -$ git send-email ... 00*</tt></pre> +$ git send-email ... 00*</code></pre> </div></div> <div class="paragraph"><p>Later, you can see whether your changes have been applied by saying -(still on <tt>topic</tt>):</p></div> +(still on <code>topic</code>):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git fetch # update your notion of origin/master -$ git cherry -v</tt></pre> +<pre><code>$ git fetch # update your notion of origin/master +$ git cherry -v</code></pre> </div></div> </div> <div class="sect2"> @@ -839,7 +837,7 @@ maintainer applied two of them, the situation might look like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git log --graph --oneline --decorate --boundary origin/master...topic +<pre><code>$ git log --graph --oneline --decorate --boundary origin/master...topic * 7654321 (origin/master) upstream tip commit [... snip some other commits ...] * cccc111 cherry-pick of C @@ -849,21 +847,21 @@ | * bbbb000 commit B | * aaaa000 commit A |/ -o 1234567 branch point</tt></pre> +o 1234567 branch point</code></pre> </div></div> <div class="paragraph"><p>In such cases, git-cherry shows a concise summary of what has yet to be applied:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git cherry origin/master topic +<pre><code>$ git cherry origin/master topic - cccc000... commit C + bbbb000... commit B -- aaaa000... commit A</tt></pre> +- aaaa000... commit A</code></pre> </div></div> -<div class="paragraph"><p>Here, we see that the commits A and C (marked with <tt>-</tt>) can be -dropped from your <tt>topic</tt> branch when you rebase it on top of -<tt>origin/master</tt>, while the commit B (marked with <tt>+</tt>) still needs to -be kept so that it will be sent to be applied to <tt>origin/master</tt>.</p></div> +<div class="paragraph"><p>Here, we see that the commits A and C (marked with <code>-</code>) can be +dropped from your <code>topic</code> branch when you rebase it on top of +<code>origin/master</code>, while the commit B (marked with <code>+</code>) still needs to +be kept so that it will be sent to be applied to <code>origin/master</code>.</p></div> </div> <div class="sect2"> <h3 id="_using_a_limit">Using a limit</h3> @@ -872,7 +870,7 @@ example, this might look like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git log --graph --oneline --decorate --boundary origin/master...topic +<pre><code>$ git log --graph --oneline --decorate --boundary origin/master...topic * 7654321 (origin/master) upstream tip commit [... snip some other commits ...] * cccc111 cherry-pick of C @@ -885,16 +883,16 @@ [... snip ...] | * 0000aaa unpublished stuff A |/ -o 1234567 merge-base between upstream and topic</tt></pre> +o 1234567 merge-base between upstream and topic</code></pre> </div></div> -<div class="paragraph"><p>By specifying <tt>base</tt> as the limit, you can avoid listing commits -between <tt>base</tt> and <tt>topic</tt>:</p></div> +<div class="paragraph"><p>By specifying <code>base</code> as the limit, you can avoid listing commits +between <code>base</code> and <code>topic</code>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git cherry origin/master topic base +<pre><code>$ git cherry origin/master topic base - cccc000... commit C + bbbb000... commit B -- aaaa000... commit A</tt></pre> +- aaaa000... commit A</code></pre> </div></div> </div> </div>
diff --git a/git-citool.html b/git-citool.html index dad059b..ce55331 100644 --- a/git-citool.html +++ b/git-citool.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-citool(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -762,7 +760,7 @@ them into the index, enter a commit message and record the new commit onto the current branch. This interface is an alternative to the less interactive <em>git commit</em> program.</p></div> -<div class="paragraph"><p><em>git citool</em> is actually a standard alias for <tt>git gui citool</tt>. +<div class="paragraph"><p><em>git citool</em> is actually a standard alias for <code>git gui citool</code>. See <a href="git-gui.html">git-gui(1)</a> for more details.</p></div> </div> </div>
diff --git a/git-clean.html b/git-clean.html index 8a845bf..69e4480 100644 --- a/git-clean.html +++ b/git-clean.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-clean(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -763,7 +761,7 @@ <div class="paragraph"><p>Normally, only files unknown to Git are removed, but if the <em>-x</em> option is specified, ignored files are also removed. This can, for example, be useful to remove all build products.</p></div> -<div class="paragraph"><p>If any optional <tt><path>...</tt> arguments are given, only those paths +<div class="paragraph"><p>If any optional <code><path>...</code> arguments are given, only those paths are affected.</p></div> </div> </div> @@ -850,7 +848,7 @@ <p> Don’t use the standard ignore rules read from .gitignore (per directory) and $GIT_DIR/info/exclude, but do still use the ignore - rules given with <tt>-e</tt> options. This allows removing all untracked + rules given with <code>-e</code> options. This allows removing all untracked files, including build products. This can be used (possibly in conjunction with <em>git reset</em>) to create a pristine working directory to test a clean build. @@ -880,12 +878,12 @@ and type return, like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> *** Commands *** +<pre><code> *** Commands *** 1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help - What now> 1</tt></pre> + What now> 1</code></pre> </div></div> -<div class="paragraph"><p>You also could say <tt>c</tt> or <tt>clean</tt> above as long as the choice is unique.</p></div> +<div class="paragraph"><p>You also could say <code>c</code> or <code>clean</code> above as long as the choice is unique.</p></div> <div class="paragraph"><p>The main command loop has 6 subcommands.</p></div> <div class="dlist"><dl> <dt class="hdlist1">
diff --git a/git-clone.html b/git-clone.html index 104fbd7..65a8f35 100644 --- a/git-clone.html +++ b/git-clone.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-clone(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -766,17 +764,17 @@ <div class="sectionbody"> <div class="paragraph"><p>Clones a repository into a newly created directory, creates remote-tracking branches for each branch in the cloned repository -(visible using <tt>git branch -r</tt>), and creates and checks out an +(visible using <code>git branch -r</code>), and creates and checks out an initial branch that is forked from the cloned repository’s currently active branch.</p></div> -<div class="paragraph"><p>After the clone, a plain <tt>git fetch</tt> without arguments will update -all the remote-tracking branches, and a <tt>git pull</tt> without +<div class="paragraph"><p>After the clone, a plain <code>git fetch</code> without arguments will update +all the remote-tracking branches, and a <code>git pull</code> without arguments will in addition merge the remote master branch into the current master branch, if any (this is untrue when "--single-branch" is given; see below).</p></div> <div class="paragraph"><p>This default configuration is achieved by creating references to -the remote branch heads under <tt>refs/remotes/origin</tt> and -by initializing <tt>remote.origin.url</tt> and <tt>remote.origin.fetch</tt> +the remote branch heads under <code>refs/remotes/origin</code> and +by initializing <code>remote.origin.url</code> and <code>remote.origin.fetch</code> configuration variables.</p></div> </div> </div> @@ -796,14 +794,14 @@ this flag bypasses the normal "Git aware" transport mechanism and clones the repository by making a copy of HEAD and everything under objects and refs directories. - The files under <tt>.git/objects/</tt> directory are hardlinked + The files under <code>.git/objects/</code> directory are hardlinked to save space when possible. </p> -<div class="paragraph"><p>If the repository is specified as a local path (e.g., <tt>/path/to/repo</tt>), +<div class="paragraph"><p>If the repository is specified as a local path (e.g., <code>/path/to/repo</code>), this is the default, and --local is essentially a no-op. If the repository is specified as a URL, then this flag is ignored (and we -never use the local optimizations). Specifying <tt>--no-local</tt> will -override the default when <tt>/path/to/repo</tt> is given, using the regular +never use the local optimizations). Specifying <code>--no-local</code> will +override the default when <code>/path/to/repo</code> is given, using the regular Git transport instead.</p></div> </dd> <dt class="hdlist1"> @@ -812,7 +810,7 @@ <dd> <p> Force the cloning process from a repository on a local - filesystem to copy the files under the <tt>.git/objects</tt> + filesystem to copy the files under the <code>.git/objects</code> directory instead of using hardlinks. This may be desirable if you are trying to make a back-up of your repository. </p> @@ -827,7 +825,7 @@ <p> When the repository to clone is on the local machine, instead of using hard links, automatically setup - <tt>.git/objects/info/alternates</tt> to share the objects + <code>.git/objects/info/alternates</code> to share the objects with the source repository. The resulting repository starts out without any object of its own. </p> @@ -836,17 +834,17 @@ repository using this option and then delete branches (or use any other Git command that makes any existing commit unreferenced) in the source repository, some objects may become unreferenced (or dangling). -These objects may be removed by normal Git operations (such as <tt>git commit</tt>) -which automatically call <tt>git gc --auto</tt>. (See <a href="git-gc.html">git-gc(1)</a>.) +These objects may be removed by normal Git operations (such as <code>git commit</code>) +which automatically call <code>git gc --auto</code>. (See <a href="git-gc.html">git-gc(1)</a>.) If these objects are removed and were referenced by the cloned repository, then the cloned repository will become corrupt.</p></div> -<div class="paragraph"><p>Note that running <tt>git repack</tt> without the <tt>-l</tt> option in a repository -cloned with <tt>-s</tt> will copy objects from the source repository into a pack -in the cloned repository, removing the disk space savings of <tt>clone -s</tt>. -It is safe, however, to run <tt>git gc</tt>, which uses the <tt>-l</tt> option by +<div class="paragraph"><p>Note that running <code>git repack</code> without the <code>-l</code> option in a repository +cloned with <code>-s</code> will copy objects from the source repository into a pack +in the cloned repository, removing the disk space savings of <code>clone -s</code>. +It is safe, however, to run <code>git gc</code>, which uses the <code>-l</code> option by default.</p></div> -<div class="paragraph"><p>If you want to break the dependency of a repository cloned with <tt>-s</tt> on -its source repository, you can simply run <tt>git repack -a</tt> to copy all +<div class="paragraph"><p>If you want to break the dependency of a repository cloned with <code>-s</code> on +its source repository, you can simply run <code>git repack -a</code> to copy all objects from the source repository into a pack in the cloned repository.</p></div> </dd> <dt class="hdlist1"> @@ -855,13 +853,13 @@ <dd> <p> If the reference repository is on the local machine, - automatically setup <tt>.git/objects/info/alternates</tt> to + automatically setup <code>.git/objects/info/alternates</code> to obtain objects from the reference repository. Using an already existing repository as an alternate will require fewer objects to be copied from the repository being cloned, reducing network and local storage costs. </p> -<div class="paragraph"><p><strong>NOTE</strong>: see the NOTE for the <tt>--shared</tt> option.</p></div> +<div class="paragraph"><p><strong>NOTE</strong>: see the NOTE for the <code>--shared</code> option.</p></div> </dd> <dt class="hdlist1"> --quiet @@ -916,13 +914,13 @@ <dd> <p> Make a <em>bare</em> Git repository. That is, instead of - creating <tt><directory></tt> and placing the administrative - files in <tt><directory>/.git</tt>, make the <tt><directory></tt> - itself the <tt>$GIT_DIR</tt>. This obviously implies the <tt>-n</tt> + creating <code><directory></code> and placing the administrative + files in <code><directory>/.git</code>, make the <code><directory></code> + itself the <code>$GIT_DIR</code>. This obviously implies the <code>-n</code> because there is nowhere to check out the working tree. Also the branch heads at the remote are copied directly to corresponding local branch heads, without mapping - them to <tt>refs/remotes/origin/</tt>. When this option is + them to <code>refs/remotes/origin/</code>. When this option is used, neither remote-tracking branches nor the related configuration variables are created. </p> @@ -932,11 +930,11 @@ </dt> <dd> <p> - Set up a mirror of the source repository. This implies <tt>--bare</tt>. - Compared to <tt>--bare</tt>, <tt>--mirror</tt> not only maps local branches of the + Set up a mirror of the source repository. This implies <code>--bare</code>. + Compared to <code>--bare</code>, <code>--mirror</code> not only maps local branches of the source to local branches of the target, it maps all refs (including remote-tracking branches, notes etc.) and sets up a refspec configuration such - that all these refs are overwritten by a <tt>git remote update</tt> in the + that all these refs are overwritten by a <code>git remote update</code> in the target repository. </p> </dd> @@ -948,8 +946,8 @@ </dt> <dd> <p> - Instead of using the remote name <tt>origin</tt> to keep track - of the upstream repository, use <tt><name></tt>. + Instead of using the remote name <code>origin</code> to keep track + of the upstream repository, use <code><name></code>. </p> </dd> <dt class="hdlist1"> @@ -961,10 +959,10 @@ <dd> <p> Instead of pointing the newly created HEAD to the branch pointed - to by the cloned repository’s HEAD, point to <tt><name></tt> branch + to by the cloned repository’s HEAD, point to <code><name></code> branch instead. In a non-bare repository, this is the branch that will be checked out. - <tt>--branch</tt> can also take tags and detaches the HEAD at that commit + <code>--branch</code> can also take tags and detaches the HEAD at that commit in the resulting repository. </p> </dd> @@ -1002,7 +1000,7 @@ this takes effect immediately after the repository is initialized, but before the remote history is fetched or any files checked out. The key is in the same format as expected by - <a href="git-config.html">git-config(1)</a> (e.g., <tt>core.eol=true</tt>). If multiple + <a href="git-config.html">git-config(1)</a> (e.g., <code>core.eol=true</code>). If multiple values are given for the same key, each value will be written to the config file. This makes it safe, for example, to add additional fetch refspecs to the origin remote. @@ -1023,15 +1021,15 @@ <dd> <p> Clone only the history leading to the tip of a single branch, - either specified by the <tt>--branch</tt> option or the primary - branch remote’s <tt>HEAD</tt> points at. When creating a shallow - clone with the <tt>--depth</tt> option, this is the default, unless - <tt>--no-single-branch</tt> is given to fetch the histories near the + either specified by the <code>--branch</code> option or the primary + branch remote’s <code>HEAD</code> points at. When creating a shallow + clone with the <code>--depth</code> option, this is the default, unless + <code>--no-single-branch</code> is given to fetch the histories near the tips of all branches. Further fetches into the resulting repository will only update the remote-tracking branch for the branch this option was used for the initial cloning. If the HEAD at the remote did not point at any - branch when <tt>--single-branch</tt> clone was made, no remote-tracking + branch when <code>--single-branch</code> clone was made, no remote-tracking branch is created. </p> </dd> @@ -1045,10 +1043,10 @@ <p> After the clone is created, initialize all submodules within, using their default settings. This is equivalent to running - <tt>git submodule update --init --recursive</tt> immediately after + <code>git submodule update --init --recursive</code> immediately after the clone is finished. This option is ignored if the cloned repository does not have a worktree/checkout (i.e. if any of - <tt>--no-checkout</tt>/<tt>-n</tt>, <tt>--bare</tt>, or <tt>--mirror</tt> is given) + <code>--no-checkout</code>/<code>-n</code>, <code>--bare</code>, or <code>--mirror</code> is given) </p> </dd> <dt class="hdlist1"> @@ -1080,8 +1078,8 @@ <p> The name of a new directory to clone into. The "humanish" part of the source repository is used if no directory is - explicitly given (<tt>repo</tt> for <tt>/path/to/repo.git</tt> and <tt>foo</tt> - for <tt>host.xz:foo/.git</tt>). Cloning into an existing directory + explicitly given (<code>repo</code> for <code>/path/to/repo.git</code> and <code>foo</code> + for <code>host.xz:foo/.git</code>). Cloning into an existing directory is only allowed if the directory is empty. </p> </dd> @@ -1139,8 +1137,8 @@ </ul></div> <div class="paragraph"><p>This syntax is only recognized if there are no slashes before the first colon. This helps differentiate a local path that contains a -colon. For example the local path <tt>foo:bar</tt> could be specified as an -absolute path or <tt>./foo:bar</tt> to avoid being misinterpreted as an ssh +colon. For example the local path <code>foo:bar</code> could be specified as an +absolute path or <code>./foo:bar</code> to avoid being misinterpreted as an ssh url.</p></div> <div class="paragraph"><p>The ssh and git protocols additionally support ~username expansion:</p></div> <div class="ulist"><ul> @@ -1196,15 +1194,15 @@ configuration section of the form:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "<actual url base>"] - insteadOf = <other url base></tt></pre> +<pre><code> [url "<actual url base>"] + insteadOf = <other url base></code></pre> </div></div> <div class="paragraph"><p>For example, with this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "git://git.host.xz/"] +<pre><code> [url "git://git.host.xz/"] insteadOf = host.xz:/path/to/ - insteadOf = work:</tt></pre> + insteadOf = work:</code></pre> </div></div> <div class="paragraph"><p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p></div> @@ -1212,14 +1210,14 @@ configuration section of the form:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "<actual url base>"] - pushInsteadOf = <other url base></tt></pre> +<pre><code> [url "<actual url base>"] + pushInsteadOf = <other url base></code></pre> </div></div> <div class="paragraph"><p>For example, with this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "ssh://example.org/"] - pushInsteadOf = git://example.org/</tt></pre> +<pre><code> [url "ssh://example.org/"] + pushInsteadOf = git://example.org/</code></pre> </div></div> <div class="paragraph"><p>a URL like "git://example.org/path/to/repo.git" will be rewritten to "ssh://example.org/path/to/repo.git" for pushes, but pulls will still @@ -1236,9 +1234,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git clone git://git.kernel.org/pub/scm/.../linux.git my-linux +<pre><code>$ git clone git://git.kernel.org/pub/scm/.../linux.git my-linux $ cd my-linux -$ make</tt></pre> +$ make</code></pre> </div></div> </li> <li> @@ -1247,9 +1245,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git clone -l -s -n . ../copy +<pre><code>$ git clone -l -s -n . ../copy $ cd ../copy -$ git show-branch</tt></pre> +$ git show-branch</code></pre> </div></div> </li> <li> @@ -1258,10 +1256,10 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git clone --reference /git/linux.git \ +<pre><code>$ git clone --reference /git/linux.git \ git://git.kernel.org/pub/scm/.../linux.git \ my-linux -$ cd my-linux</tt></pre> +$ cd my-linux</code></pre> </div></div> </li> <li> @@ -1270,7 +1268,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git clone --bare -l /home/proj/.git /pub/scm/proj.git</tt></pre> +<pre><code>$ git clone --bare -l /home/proj/.git /pub/scm/proj.git</code></pre> </div></div> </li> </ul></div>
diff --git a/git-column.html b/git-column.html index d575bf2..ee1f50a 100644 --- a/git-column.html +++ b/git-column.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-column(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-commit-tree.html b/git-commit-tree.html index 83e3b80..c6031c3 100644 --- a/git-commit-tree.html +++ b/git-commit-tree.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-commit-tree(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -764,7 +762,7 @@ <a href="git-commit.html">git-commit(1)</a> instead.</p></div> <div class="paragraph"><p>Creates a new commit object based on the provided tree object and emits the new commit object id on stdout. The log message is read -from the standard input, unless <tt>-m</tt> or <tt>-F</tt> options are given.</p></div> +from the standard input, unless <code>-m</code> or <code>-F</code> options are given.</p></div> <div class="paragraph"><p>A commit object may have any number of parents. With exactly one parent, it is an ordinary commit. Having more than one parent makes the commit a merge between several lines of history. Initial (root) @@ -775,7 +773,7 @@ <div class="paragraph"><p>Normally a commit would identify a new "HEAD" state, and while Git doesn’t care where you save the note about that state, in practice we tend to just write the result to the file that is pointed at by -<tt>.git/HEAD</tt>, so that we can always see what the last committed +<code>.git/HEAD</code>, so that we can always see what the last committed state was.</p></div> </div> </div> @@ -813,7 +811,7 @@ </dt> <dd> <p> - Read the commit log message from the given file. Use <tt>-</tt> to read + Read the commit log message from the given file. Use <code>-</code> to read from the standard input. </p> </dd> @@ -833,7 +831,7 @@ </dt> <dd> <p> - Countermand <tt>commit.gpgsign</tt> configuration variable that is + Countermand <code>commit.gpgsign</code> configuration variable that is set to force each and every commit to be signed. </p> </dd> @@ -866,19 +864,19 @@ if set:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>GIT_AUTHOR_NAME +<pre><code>GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_AUTHOR_DATE GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL -GIT_COMMITTER_DATE</tt></pre> +GIT_COMMITTER_DATE</code></pre> </div></div> <div class="paragraph"><p>(nb "<", ">" and "\n"s are stripped)</p></div> <div class="paragraph"><p>In case (some of) these environment variables are not set, the information is taken from the configuration items user.name and user.email, or, if not present, the environment variable EMAIL, or, if that is not set, system user name and the hostname used for outgoing mail (taken -from <tt>/etc/mailname</tt> and falling back to the fully qualified hostname when +from <code>/etc/mailname</code> and falling back to the fully qualified hostname when that file does not exist).</p></div> <div class="paragraph"><p>A commit comment is read from stdin. If a changelog entry is not provided via "<" redirection, <em>git commit-tree</em> will just wait @@ -896,10 +894,10 @@ </dt> <dd> <p> - It is <tt><unix timestamp> <time zone offset></tt>, where <tt><unix - timestamp></tt> is the number of seconds since the UNIX epoch. - <tt><time zone offset></tt> is a positive or negative offset from UTC. - For example CET (which is 2 hours ahead UTC) is <tt>+0200</tt>. + It is <code><unix timestamp> <time zone offset></code>, where <code><unix + timestamp></code> is the number of seconds since the UNIX epoch. + <code><time zone offset></code> is a positive or negative offset from UTC. + For example CET (which is 2 hours ahead UTC) is <code>+0200</code>. </p> </dd> <dt class="hdlist1"> @@ -908,7 +906,7 @@ <dd> <p> The standard email format as described by RFC 2822, for example - <tt>Thu, 07 Apr 2005 22:13:13 +0200</tt>. + <code>Thu, 07 Apr 2005 22:13:13 +0200</code>. </p> </dd> <dt class="hdlist1"> @@ -917,8 +915,8 @@ <dd> <p> Time and date specified by the ISO 8601 standard, for example - <tt>2005-04-07T22:13:13</tt>. The parser accepts a space instead of the - <tt>T</tt> character as well. + <code>2005-04-07T22:13:13</code>. The parser accepts a space instead of the + <code>T</code> character as well. </p> <div class="admonitionblock"> <table><tr> @@ -926,7 +924,7 @@ <div class="title">Note</div> </td> <td class="content">In addition, the date part is accepted in the following formats: -<tt>YYYY.MM.DD</tt>, <tt>MM/DD/YYYY</tt> and <tt>DD.MM.YYYY</tt>.</td> +<code>YYYY.MM.DD</code>, <code>MM/DD/YYYY</code> and <code>DD.MM.YYYY</code>.</td> </tr></table> </div> </dd> @@ -975,33 +973,33 @@ a warning if the commit log message given to it does not look like a valid UTF-8 string, unless you explicitly say your project uses a legacy encoding. The way to say this is to - have i18n.commitencoding in <tt>.git/config</tt> file, like this: + have i18n.commitencoding in <code>.git/config</code> file, like this: </p> <div class="listingblock"> <div class="content"> -<pre><tt>[i18n] - commitencoding = ISO-8859-1</tt></pre> +<pre><code>[i18n] + commitencoding = ISO-8859-1</code></pre> </div></div> <div class="paragraph"><p>Commit objects created with the above setting record the value -of <tt>i18n.commitencoding</tt> in its <tt>encoding</tt> header. This is to +of <code>i18n.commitencoding</code> in its <code>encoding</code> header. This is to help other people who look at them later. Lack of this header implies that the commit log message is encoded in UTF-8.</p></div> </li> <li> <p> <em>git log</em>, <em>git show</em>, <em>git blame</em> and friends look at the - <tt>encoding</tt> header of a commit object, and try to re-code the + <code>encoding</code> header of a commit object, and try to re-code the log message into UTF-8 unless otherwise specified. You can specify the desired output encoding with - <tt>i18n.logoutputencoding</tt> in <tt>.git/config</tt> file, like this: + <code>i18n.logoutputencoding</code> in <code>.git/config</code> file, like this: </p> <div class="listingblock"> <div class="content"> -<pre><tt>[i18n] - logoutputencoding = ISO-8859-1</tt></pre> +<pre><code>[i18n] + logoutputencoding = ISO-8859-1</code></pre> </div></div> <div class="paragraph"><p>If you do not have this configuration variable, the value of -<tt>i18n.commitencoding</tt> is used instead.</p></div> +<code>i18n.commitencoding</code> is used instead.</p></div> </li> </ol></div> <div class="paragraph"><p>Note that we deliberately chose not to re-code the commit log
diff --git a/git-commit.html b/git-commit.html index b5cc6b2..d74ef88 100644 --- a/git-commit.html +++ b/git-commit.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-commit(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -806,7 +804,7 @@ </p> </li> </ol></div> -<div class="paragraph"><p>The <tt>--dry-run</tt> option can be used to obtain a +<div class="paragraph"><p>The <code>--dry-run</code> option can be used to obtain a summary of what is included by any of the above for the next commit by giving the same set of parameters (options and paths).</p></div> <div class="paragraph"><p>If you make a commit and then find a mistake immediately after @@ -873,7 +871,7 @@ </dt> <dd> <p> - Construct a commit message for use with <tt>rebase --autosquash</tt>. + Construct a commit message for use with <code>rebase --autosquash</code>. The commit message will be the subject line from the specified commit with a prefix of "fixup! ". See <a href="git-rebase.html">git-rebase(1)</a> for details. @@ -884,10 +882,10 @@ </dt> <dd> <p> - Construct a commit message for use with <tt>rebase --autosquash</tt>. + Construct a commit message for use with <code>rebase --autosquash</code>. The commit message subject line is taken from the specified commit with a prefix of "squash! ". Can be used with additional - commit message options (<tt>-m</tt>/<tt>-c</tt>/<tt>-C</tt>/<tt>-F</tt>). See + commit message options (<code>-m</code>/<code>-c</code>/<code>-C</code>/<code>-F</code>). See <a href="git-rebase.html">git-rebase(1)</a> for details. </p> </dd> @@ -908,7 +906,7 @@ <dd> <p> When doing a dry-run, give the output in the short-format. See - <a href="git-status.html">git-status(1)</a> for details. Implies <tt>--dry-run</tt>. + <a href="git-status.html">git-status(1)</a> for details. Implies <code>--dry-run</code>. </p> </dd> <dt class="hdlist1"> @@ -926,7 +924,7 @@ <p> When doing a dry-run, give the output in a porcelain-ready format. See <a href="git-status.html">git-status(1)</a> for details. Implies - <tt>--dry-run</tt>. + <code>--dry-run</code>. </p> </dd> <dt class="hdlist1"> @@ -935,7 +933,7 @@ <dd> <p> When doing a dry-run, give the output in a the long-format. - Implies <tt>--dry-run</tt>. + Implies <code>--dry-run</code>. </p> </dd> <dt class="hdlist1"> @@ -946,9 +944,9 @@ </dt> <dd> <p> - When showing <tt>short</tt> or <tt>porcelain</tt> status output, terminate + When showing <code>short</code> or <code>porcelain</code> status output, terminate entries in the status output with NUL, instead of LF. If no - format is given, implies the <tt>--porcelain</tt> output format. + format is given, implies the <code>--porcelain</code> output format. </p> </dd> <dt class="hdlist1"> @@ -969,7 +967,7 @@ <dd> <p> Override the commit author. Specify an explicit author using the - standard <tt>A U Thor <author@example.com></tt> format. Otherwise <author> + standard <code>A U Thor <author@example.com></code> format. Otherwise <author> is assumed to be a pattern and is used to search for an existing commit by that author (i.e. rev-list --all -i --author=<author>); the commit author is then copied from the first such commit found. @@ -992,7 +990,7 @@ <dd> <p> Use the given <msg> as the commit message. - If multiple <tt>-m</tt> options are given, their values are + If multiple <code>-m</code> options are given, their values are concatenated as separate paragraphs. </p> </dd> @@ -1005,13 +1003,13 @@ <dd> <p> When editing the commit message, start the editor with the - contents in the given file. The <tt>commit.template</tt> configuration + contents in the given file. The <code>commit.template</code> configuration variable is often used to give this option implicitly to the command. This mechanism can be used by projects that want to guide participants with some hints on what to write in the message in what order. If the user exits the editor without editing the message, the commit is aborted. This has no effect when a message - is given by other means, e.g. with the <tt>-m</tt> or <tt>-F</tt> options. + is given by other means, e.g. with the <code>-m</code> or <code>-F</code> options. </p> </dd> <dt class="hdlist1"> @@ -1066,8 +1064,8 @@ <dd> <p> This option determines how the supplied commit message should be - cleaned up before committing. The <em><mode></em> can be <tt>strip</tt>, - <tt>whitespace</tt>, <tt>verbatim</tt>, <tt>scissors</tt> or <tt>default</tt>. + cleaned up before committing. The <em><mode></em> can be <code>strip</code>, + <code>whitespace</code>, <code>verbatim</code>, <code>scissors</code> or <code>default</code>. </p> <div class="openblock"> <div class="content"> @@ -1086,7 +1084,7 @@ </dt> <dd> <p> - Same as <tt>strip</tt> except #commentary is not removed. + Same as <code>strip</code> except #commentary is not removed. </p> </dd> <dt class="hdlist1"> @@ -1102,10 +1100,10 @@ </dt> <dd> <p> - Same as <tt>whitespace</tt>, except that everything from (and + Same as <code>whitespace</code>, except that everything from (and including) the line - "<tt># ------------------------ >8 ------------------------</tt>" - is truncated if the message is to be edited. "<tt>#</tt>" can be + "<code># ------------------------ >8 ------------------------</code>" + is truncated if the message is to be edited. "<code>#</code>" can be customized with core.commentChar. </p> </dd> @@ -1114,8 +1112,8 @@ </dt> <dd> <p> - Same as <tt>strip</tt> if the message is to be edited. - Otherwise <tt>whitespace</tt>. + Same as <code>strip</code> if the message is to be edited. + Otherwise <code>whitespace</code>. </p> </dd> </dl></div> @@ -1131,8 +1129,8 @@ </dt> <dd> <p> - The message taken from file with <tt>-F</tt>, command line with - <tt>-m</tt>, and from commit object with <tt>-C</tt> are usually used as + The message taken from file with <code>-F</code>, command line with + <code>-m</code>, and from commit object with <code>-C</code> are usually used as the commit log message unmodified. This option lets you further edit the message taken from these sources. </p> @@ -1143,7 +1141,7 @@ <dd> <p> Use the selected commit message without launching an editor. - For example, <tt>git commit --amend --no-edit</tt> amends a commit + For example, <code>git commit --amend --no-edit</code> amends a commit without changing its commit message. </p> </dd> @@ -1154,12 +1152,12 @@ <p> Replace the tip of the current branch by creating a new commit. The recorded tree is prepared as usual (including - the effect of the <tt>-i</tt> and <tt>-o</tt> options and explicit + the effect of the <code>-i</code> and <code>-o</code> options and explicit pathspec), and the message from the original commit is used as the starting point, instead of an empty message, when no other message is specified from the command line via options - such as <tt>-m</tt>, <tt>-F</tt>, <tt>-c</tt>, etc. The new commit has the same - parents and author as the current one (the <tt>--reset-author</tt> + such as <code>-m</code>, <code>-F</code>, <code>-c</code>, etc. The new commit has the same + parents and author as the current one (the <code>--reset-author</code> option can countermand this). </p> <div class="openblock"> @@ -1167,9 +1165,9 @@ <div class="paragraph"><p>It is a rough equivalent for:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git reset --soft HEAD^ +<pre><code> $ git reset --soft HEAD^ $ ... do something else to come up with the right tree ... - $ git commit -c ORIG_HEAD</tt></pre> + $ git commit -c ORIG_HEAD</code></pre> </div></div> <div class="paragraph"><p>but can be used to amend a merge commit.</p></div> </div></div> @@ -1324,7 +1322,7 @@ </dt> <dd> <p> - Countermand <tt>commit.gpgsign</tt> configuration variable that is + Countermand <code>commit.gpgsign</code> configuration variable that is set to force each and every commit to be signed. </p> </dd> @@ -1355,7 +1353,7 @@ <h2 id="_date_formats">DATE FORMATS</h2> <div class="sectionbody"> <div class="paragraph"><p>The GIT_AUTHOR_DATE, GIT_COMMITTER_DATE environment variables -and the <tt>--date</tt> option +and the <code>--date</code> option support the following date formats:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> @@ -1363,10 +1361,10 @@ </dt> <dd> <p> - It is <tt><unix timestamp> <time zone offset></tt>, where <tt><unix - timestamp></tt> is the number of seconds since the UNIX epoch. - <tt><time zone offset></tt> is a positive or negative offset from UTC. - For example CET (which is 2 hours ahead UTC) is <tt>+0200</tt>. + It is <code><unix timestamp> <time zone offset></code>, where <code><unix + timestamp></code> is the number of seconds since the UNIX epoch. + <code><time zone offset></code> is a positive or negative offset from UTC. + For example CET (which is 2 hours ahead UTC) is <code>+0200</code>. </p> </dd> <dt class="hdlist1"> @@ -1375,7 +1373,7 @@ <dd> <p> The standard email format as described by RFC 2822, for example - <tt>Thu, 07 Apr 2005 22:13:13 +0200</tt>. + <code>Thu, 07 Apr 2005 22:13:13 +0200</code>. </p> </dd> <dt class="hdlist1"> @@ -1384,8 +1382,8 @@ <dd> <p> Time and date specified by the ISO 8601 standard, for example - <tt>2005-04-07T22:13:13</tt>. The parser accepts a space instead of the - <tt>T</tt> character as well. + <code>2005-04-07T22:13:13</code>. The parser accepts a space instead of the + <code>T</code> character as well. </p> <div class="admonitionblock"> <table><tr> @@ -1393,7 +1391,7 @@ <div class="title">Note</div> </td> <td class="content">In addition, the date part is accepted in the following formats: -<tt>YYYY.MM.DD</tt>, <tt>MM/DD/YYYY</tt> and <tt>DD.MM.YYYY</tt>.</td> +<code>YYYY.MM.DD</code>, <code>MM/DD/YYYY</code> and <code>DD.MM.YYYY</code>.</td> </tr></table> </div> </dd> @@ -1407,56 +1405,56 @@ your working tree are temporarily stored to a staging area called the "index" with <em>git add</em>. A file can be reverted back, only in the index but not in the working tree, -to that of the last commit with <tt>git reset HEAD -- <file></tt>, +to that of the last commit with <code>git reset HEAD -- <file></code>, which effectively reverts <em>git add</em> and prevents the changes to this file from participating in the next commit. After building the state to be committed incrementally with these commands, -<tt>git commit</tt> (without any pathname parameter) is used to record what +<code>git commit</code> (without any pathname parameter) is used to record what has been staged so far. This is the most basic form of the command. An example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ edit hello.c +<pre><code>$ edit hello.c $ git rm goodbye.c $ git add hello.c -$ git commit</tt></pre> +$ git commit</code></pre> </div></div> <div class="paragraph"><p>Instead of staging files after each individual change, you can -tell <tt>git commit</tt> to notice the changes to the files whose +tell <code>git commit</code> to notice the changes to the files whose contents are tracked in -your working tree and do corresponding <tt>git add</tt> and <tt>git rm</tt> +your working tree and do corresponding <code>git add</code> and <code>git rm</code> for you. That is, this example does the same as the earlier example if there is no other change in your working tree:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ edit hello.c +<pre><code>$ edit hello.c $ rm goodbye.c -$ git commit -a</tt></pre> +$ git commit -a</code></pre> </div></div> -<div class="paragraph"><p>The command <tt>git commit -a</tt> first looks at your working tree, +<div class="paragraph"><p>The command <code>git commit -a</code> first looks at your working tree, notices that you have modified hello.c and removed goodbye.c, -and performs necessary <tt>git add</tt> and <tt>git rm</tt> for you.</p></div> +and performs necessary <code>git add</code> and <code>git rm</code> for you.</p></div> <div class="paragraph"><p>After staging changes to many files, you can alter the order the -changes are recorded in, by giving pathnames to <tt>git commit</tt>. +changes are recorded in, by giving pathnames to <code>git commit</code>. When pathnames are given, the command makes a commit that only records the changes made to the named paths:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ edit hello.c hello.h +<pre><code>$ edit hello.c hello.h $ git add hello.c hello.h $ edit Makefile -$ git commit Makefile</tt></pre> +$ git commit Makefile</code></pre> </div></div> -<div class="paragraph"><p>This makes a commit that records the modification to <tt>Makefile</tt>. -The changes staged for <tt>hello.c</tt> and <tt>hello.h</tt> are not included +<div class="paragraph"><p>This makes a commit that records the modification to <code>Makefile</code>. +The changes staged for <code>hello.c</code> and <code>hello.h</code> are not included in the resulting commit. However, their changes are not lost — they are still staged and merely held back. After the above sequence, if you do:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git commit</tt></pre> +<pre><code>$ git commit</code></pre> </div></div> -<div class="paragraph"><p>this second commit would record the changes to <tt>hello.c</tt> and -<tt>hello.h</tt> as expected.</p></div> +<div class="paragraph"><p>this second commit would record the changes to <code>hello.c</code> and +<code>hello.h</code> as expected.</p></div> <div class="paragraph"><p>After a merge (initiated by <em>git merge</em> or <em>git pull</em>) stops because of conflicts, cleanly merged paths are already staged to be committed for you, and paths that @@ -1466,24 +1464,24 @@ stage the result as usual with <em>git add</em>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git status | grep unmerged +<pre><code>$ git status | grep unmerged unmerged: hello.c $ edit hello.c -$ git add hello.c</tt></pre> +$ git add hello.c</code></pre> </div></div> -<div class="paragraph"><p>After resolving conflicts and staging the result, <tt>git ls-files -u</tt> +<div class="paragraph"><p>After resolving conflicts and staging the result, <code>git ls-files -u</code> would stop mentioning the conflicted path. When you are done, -run <tt>git commit</tt> to finally record the merge:</p></div> +run <code>git commit</code> to finally record the merge:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git commit</tt></pre> +<pre><code>$ git commit</code></pre> </div></div> -<div class="paragraph"><p>As with the case to record your own changes, you can use <tt>-a</tt> +<div class="paragraph"><p>As with the case to record your own changes, you can use <code>-a</code> option to save typing. One difference is that during a merge -resolution, you cannot use <tt>git commit</tt> with pathnames to +resolution, you cannot use <code>git commit</code> with pathnames to alter the order the changes are committed, because the merge should be recorded as a single commit. In fact, the command -refuses to run when given pathnames (but see <tt>-i</tt> option).</p></div> +refuses to run when given pathnames (but see <code>-i</code> option).</p></div> </div> </div> <div class="sect1"> @@ -1535,33 +1533,33 @@ a warning if the commit log message given to it does not look like a valid UTF-8 string, unless you explicitly say your project uses a legacy encoding. The way to say this is to - have i18n.commitencoding in <tt>.git/config</tt> file, like this: + have i18n.commitencoding in <code>.git/config</code> file, like this: </p> <div class="listingblock"> <div class="content"> -<pre><tt>[i18n] - commitencoding = ISO-8859-1</tt></pre> +<pre><code>[i18n] + commitencoding = ISO-8859-1</code></pre> </div></div> <div class="paragraph"><p>Commit objects created with the above setting record the value -of <tt>i18n.commitencoding</tt> in its <tt>encoding</tt> header. This is to +of <code>i18n.commitencoding</code> in its <code>encoding</code> header. This is to help other people who look at them later. Lack of this header implies that the commit log message is encoded in UTF-8.</p></div> </li> <li> <p> <em>git log</em>, <em>git show</em>, <em>git blame</em> and friends look at the - <tt>encoding</tt> header of a commit object, and try to re-code the + <code>encoding</code> header of a commit object, and try to re-code the log message into UTF-8 unless otherwise specified. You can specify the desired output encoding with - <tt>i18n.logoutputencoding</tt> in <tt>.git/config</tt> file, like this: + <code>i18n.logoutputencoding</code> in <code>.git/config</code> file, like this: </p> <div class="listingblock"> <div class="content"> -<pre><tt>[i18n] - logoutputencoding = ISO-8859-1</tt></pre> +<pre><code>[i18n] + logoutputencoding = ISO-8859-1</code></pre> </div></div> <div class="paragraph"><p>If you do not have this configuration variable, the value of -<tt>i18n.commitencoding</tt> is used instead.</p></div> +<code>i18n.commitencoding</code> is used instead.</p></div> </li> </ol></div> <div class="paragraph"><p>Note that we deliberately chose not to re-code the commit log @@ -1582,8 +1580,8 @@ <div class="sect1"> <h2 id="_hooks">HOOKS</h2> <div class="sectionbody"> -<div class="paragraph"><p>This command can run <tt>commit-msg</tt>, <tt>prepare-commit-msg</tt>, <tt>pre-commit</tt>, -and <tt>post-commit</tt> hooks. See <a href="githooks.html">githooks(5)</a> for more +<div class="paragraph"><p>This command can run <code>commit-msg</code>, <code>prepare-commit-msg</code>, <code>pre-commit</code>, +and <code>post-commit</code> hooks. See <a href="githooks.html">githooks(5)</a> for more information.</p></div> </div> </div> @@ -1592,15 +1590,15 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>$GIT_DIR/COMMIT_EDITMSG</tt> +<code>$GIT_DIR/COMMIT_EDITMSG</code> </dt> <dd> <p> This file contains the commit message of a commit in progress. - If <tt>git commit</tt> exits due to an error before creating a commit, + If <code>git commit</code> exits due to an error before creating a commit, any commit message that has been provided by the user (e.g., in an editor session) will be available in this file, but will be - overwritten by the next invocation of <tt>git commit</tt>. + overwritten by the next invocation of <code>git commit</code>. </p> </dd> </dl></div>
diff --git a/git-config.html b/git-config.html index 5333e8a..706c70f 100644 --- a/git-config.html +++ b/git-config.html
@@ -2639,7 +2639,23 @@ </dt> <dd> <p> - matching text + matching text (same as setting <code>matchContext</code> and <code>matchSelected</code>) +</p> +</dd> +<dt class="hdlist1"> +<code>matchContext</code> +</dt> +<dd> +<p> + matching text in context lines +</p> +</dd> +<dt class="hdlist1"> +<code>matchSelected</code> +</dt> +<dd> +<p> + matching text in selected lines </p> </dd> <dt class="hdlist1">
diff --git a/git-count-objects.html b/git-count-objects.html index 9e14eb3..01095b2 100644 --- a/git-count-objects.html +++ b/git-count-objects.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-count-objects(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -781,7 +779,7 @@ <div class="paragraph"><p>in-pack: the number of in-pack objects</p></div> <div class="paragraph"><p>size-pack: disk space consumed by the packs, in KiB (unless -H is specified)</p></div> <div class="paragraph"><p>prune-packable: the number of loose objects that are also present in -the packs. These objects could be pruned using <tt>git prune-packed</tt>.</p></div> +the packs. These objects could be pruned using <code>git prune-packed</code>.</p></div> <div class="paragraph"><p>garbage: the number of files in object database that are neither valid loose objects nor valid packs</p></div> <div class="paragraph"><p>size-garbage: disk space consumed by garbage files, in KiB (unless -H is
diff --git a/git-credential-cache.html b/git-credential-cache.html index 75a2ecc..6aafb19 100644 --- a/git-credential-cache.html +++ b/git-credential-cache.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-credential-cache(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -751,7 +749,7 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt>git config credential.helper 'cache [options]'</tt></pre> +<pre><code>git config credential.helper 'cache [options]'</code></pre> </div></div> </div> </div> @@ -764,7 +762,7 @@ domain socket, restricted to the current user by filesystem permissions.</p></div> <div class="paragraph"><p>You probably don’t want to invoke this command directly; it is meant to be used as a credential helper by other parts of Git. See -<a href="gitcredentials.html">gitcredentials(7)</a> or <tt>EXAMPLES</tt> below.</p></div> +<a href="gitcredentials.html">gitcredentials(7)</a> or <code>EXAMPLES</code> below.</p></div> </div> </div> <div class="sect1"> @@ -784,9 +782,9 @@ </dt> <dd> <p> - Use <tt><path></tt> to contact a running cache daemon (or start a new + Use <code><path></code> to contact a running cache daemon (or start a new cache daemon if one is not started). Defaults to - <tt>~/.git-credential-cache/socket</tt>. If your home directory is on a + <code>~/.git-credential-cache/socket</code>. If your home directory is on a network-mounted filesystem, you may need to change this to a local filesystem. </p> @@ -798,10 +796,10 @@ <h2 id="_controlling_the_daemon">CONTROLLING THE DAEMON</h2> <div class="sectionbody"> <div class="paragraph"><p>If you would like the daemon to exit early, forgetting all cached -credentials before their timeout, you can issue an <tt>exit</tt> action:</p></div> +credentials before their timeout, you can issue an <code>exit</code> action:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git credential-cache exit</tt></pre> +<pre><code>git credential-cache exit</code></pre> </div></div> </div> </div> @@ -812,20 +810,20 @@ your username or password. For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git config credential.helper cache +<pre><code>$ git config credential.helper cache $ git push http://example.com/repo.git Username: <type your username> Password: <type your password> [work for 5 more minutes] $ git push http://example.com/repo.git -[your credentials are used automatically]</tt></pre> +[your credentials are used automatically]</code></pre> </div></div> <div class="paragraph"><p>You can provide options via the credential.helper configuration variable (this example drops the cache time to 5 minutes):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git config credential.helper 'cache --timeout=300'</tt></pre> +<pre><code>$ git config credential.helper 'cache --timeout=300'</code></pre> </div></div> </div> </div>
diff --git a/git-credential-store.html b/git-credential-store.html index 8e7cefa..7efa62a 100644 --- a/git-credential-store.html +++ b/git-credential-store.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-credential-store(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -751,7 +749,7 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt>git config credential.helper 'store [options]'</tt></pre> +<pre><code>git config credential.helper 'store [options]'</code></pre> </div></div> </div> </div> @@ -773,7 +771,7 @@ Git programs.</p></div> <div class="paragraph"><p>You probably don’t want to invoke this command directly; it is meant to be used as a credential helper by other parts of git. See -<a href="gitcredentials.html">gitcredentials(7)</a> or <tt>EXAMPLES</tt> below.</p></div> +<a href="gitcredentials.html">gitcredentials(7)</a> or <code>EXAMPLES</code> below.</p></div> </div> </div> <div class="sect1"> @@ -785,10 +783,10 @@ </dt> <dd> <p> - Use <tt><path></tt> to store credentials. The file will have its + Use <code><path></code> to store credentials. The file will have its filesystem permissions set to prevent other users on the system from reading it, but will not be encrypted or otherwise - protected. Defaults to <tt>~/.git-credentials</tt>. + protected. Defaults to <code>~/.git-credentials</code>. </p> </dd> </dl></div> @@ -801,25 +799,25 @@ your username or password. For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git config credential.helper store +<pre><code>$ git config credential.helper store $ git push http://example.com/repo.git Username: <type your username> Password: <type your password> [several days later] $ git push http://example.com/repo.git -[your credentials are used automatically]</tt></pre> +[your credentials are used automatically]</code></pre> </div></div> </div> </div> <div class="sect1"> <h2 id="_storage_format">STORAGE FORMAT</h2> <div class="sectionbody"> -<div class="paragraph"><p>The <tt>.git-credentials</tt> file is stored in plaintext. Each credential is +<div class="paragraph"><p>The <code>.git-credentials</code> file is stored in plaintext. Each credential is stored on its own line as a URL like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>https://user:pass@example.com</tt></pre> +<pre><code>https://user:pass@example.com</code></pre> </div></div> <div class="paragraph"><p>When Git needs authentication for a particular URL context, credential-store will consider that context a pattern to match against
diff --git a/git-credential.html b/git-credential.html index d56c62c..6c850e8 100644 --- a/git-credential.html +++ b/git-credential.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-credential(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -751,7 +749,7 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt>git credential <fill|approve|reject></tt></pre> +<pre><code>git credential <fill|approve|reject></code></pre> </div></div> </div> </div> @@ -767,69 +765,69 @@ <a href="technical/api-credentials.html">the Git credential API</a> for more background on the concepts.</p></div> <div class="paragraph"><p>git-credential takes an "action" option on the command-line (one of -<tt>fill</tt>, <tt>approve</tt>, or <tt>reject</tt>) and reads a credential description +<code>fill</code>, <code>approve</code>, or <code>reject</code>) and reads a credential description on stdin (see <a href="#IOFMT">INPUT/OUTPUT FORMAT</a>).</p></div> -<div class="paragraph"><p>If the action is <tt>fill</tt>, git-credential will attempt to add "username" +<div class="paragraph"><p>If the action is <code>fill</code>, git-credential will attempt to add "username" and "password" attributes to the description by reading config files, by contacting any configured credential helpers, or by prompting the user. The username and password attributes of the credential description are then printed to stdout together with the attributes already provided.</p></div> -<div class="paragraph"><p>If the action is <tt>approve</tt>, git-credential will send the description +<div class="paragraph"><p>If the action is <code>approve</code>, git-credential will send the description to any configured credential helpers, which may store the credential for later use.</p></div> -<div class="paragraph"><p>If the action is <tt>reject</tt>, git-credential will send the description to +<div class="paragraph"><p>If the action is <code>reject</code>, git-credential will send the description to any configured credential helpers, which may erase any stored credential matching the description.</p></div> -<div class="paragraph"><p>If the action is <tt>approve</tt> or <tt>reject</tt>, no output should be emitted.</p></div> +<div class="paragraph"><p>If the action is <code>approve</code> or <code>reject</code>, no output should be emitted.</p></div> </div> </div> <div class="sect1"> <h2 id="_typical_use_of_git_credential">TYPICAL USE OF GIT CREDENTIAL</h2> <div class="sectionbody"> -<div class="paragraph"><p>An application using git-credential will typically use <tt>git -credential</tt> following these steps:</p></div> +<div class="paragraph"><p>An application using git-credential will typically use <code>git +credential</code> following these steps:</p></div> <div class="olist arabic"><ol class="arabic"> <li> <p> Generate a credential description based on the context. </p> <div class="paragraph"><p>For example, if we want a password for -<tt>https://example.com/foo.git</tt>, we might generate the following +<code>https://example.com/foo.git</code>, we might generate the following credential description (don’t forget the blank line at the end; it -tells <tt>git credential</tt> that the application finished feeding all the +tells <code>git credential</code> that the application finished feeding all the information it has):</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>protocol=https +<pre><code>protocol=https host=example.com -path=foo.git</tt></pre> +path=foo.git</code></pre> </div></div> </li> <li> <p> Ask git-credential to give us a username and password for this - description. This is done by running <tt>git credential fill</tt>, + description. This is done by running <code>git credential fill</code>, feeding the description from step (1) to its standard input. The complete credential description (including the credential per se, i.e. the login and password) will be produced on standard output, like: </p> <div class="literalblock"> <div class="content"> -<pre><tt>protocol=https +<pre><code>protocol=https host=example.com username=bob -password=secr3t</tt></pre> +password=secr3t</code></pre> </div></div> <div class="paragraph"><p>In most cases, this means the attributes given in the input will be repeated in the output, but Git may also modify the credential -description, for example by removing the <tt>path</tt> attribute when the -protocol is HTTP(s) and <tt>credential.useHttpPath</tt> is false.</p></div> -<div class="paragraph"><p>If the <tt>git credential</tt> knew about the password, this step may +description, for example by removing the <code>path</code> attribute when the +protocol is HTTP(s) and <code>credential.useHttpPath</code> is false.</p></div> +<div class="paragraph"><p>If the <code>git credential</code> knew about the password, this step may not have involved the user actually typing this password (the user may have typed a password to unlock the keychain instead, or no user interaction was done if the keychain was already -unlocked) before it returned <tt>password=secr3t</tt>.</p></div> +unlocked) before it returned <code>password=secr3t</code>.</p></div> </li> <li> <p> @@ -841,11 +839,11 @@ <p> Report on the success or failure of the password. If the credential allowed the operation to complete successfully, then - it can be marked with an "approve" action to tell <tt>git - credential</tt> to reuse it in its next invocation. If the credential + it can be marked with an "approve" action to tell <code>git + credential</code> to reuse it in its next invocation. If the credential was rejected during the operation, use the "reject" action so - that <tt>git credential</tt> will ask for a new password in its next - invocation. In either case, <tt>git credential</tt> should be fed with + that <code>git credential</code> will ask for a new password in its next + invocation. In either case, <code>git credential</code> should be fed with the credential description obtained from step (2) (which also contain the ones provided in step (1)). </p> @@ -856,15 +854,15 @@ <div class="sect1"> <h2 id="IOFMT">INPUT/OUTPUT FORMAT</h2> <div class="sectionbody"> -<div class="paragraph"><p><tt>git credential</tt> reads and/or writes (depending on the action used) +<div class="paragraph"><p><code>git credential</code> reads and/or writes (depending on the action used) credential information in its standard input/output. This information -can correspond either to keys for which <tt>git credential</tt> will obtain +can correspond either to keys for which <code>git credential</code> will obtain the login/password information (e.g. host, protocol, path), or to the actual credential data to be obtained (login/password).</p></div> <div class="paragraph"><p>The credential is split into a set of named attributes, with one attribute per line. Each attribute is -specified by a key-value pair, separated by an <tt>=</tt> (equals) sign, -followed by a newline. The key may contain any bytes except <tt>=</tt>, +specified by a key-value pair, separated by an <code>=</code> (equals) sign, +followed by a newline. The key may contain any bytes except <code>=</code>, newline, or NUL. The value may contain any bytes except newline or NUL. In both cases, all bytes are treated as-is (i.e., there is no quoting, and one cannot transmit a value with newline or NUL in it). The list of @@ -872,16 +870,16 @@ Git understands the following attributes:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>protocol</tt> +<code>protocol</code> </dt> <dd> <p> The protocol over which the credential will be used (e.g., - <tt>https</tt>). + <code>https</code>). </p> </dd> <dt class="hdlist1"> -<tt>host</tt> +<code>host</code> </dt> <dd> <p> @@ -889,7 +887,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>path</tt> +<code>path</code> </dt> <dd> <p> @@ -899,7 +897,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>username</tt> +<code>username</code> </dt> <dd> <p> @@ -908,7 +906,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>password</tt> +<code>password</code> </dt> <dd> <p> @@ -916,14 +914,14 @@ </p> </dd> <dt class="hdlist1"> -<tt>url</tt> +<code>url</code> </dt> <dd> <p> - When this special attribute is read by <tt>git credential</tt>, the + When this special attribute is read by <code>git credential</code>, the value is parsed as a URL and treated as if its constituent parts - were read (e.g., <tt>url=https://example.com</tt> would behave as if - <tt>protocol=https</tt> and <tt>host=example.com</tt> had been provided). This + were read (e.g., <code>url=https://example.com</code> would behave as if + <code>protocol=https</code> and <code>host=example.com</code> had been provided). This can help callers avoid parsing URLs themselves. Note that any components which are missing from the URL (e.g., there is no username in the example above) will be set to empty; if you want
diff --git a/git-cvsexportcommit.html b/git-cvsexportcommit.html index 8768a2b..55c3dd5 100644 --- a/git-cvsexportcommit.html +++ b/git-cvsexportcommit.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-cvsexportcommit(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -912,10 +910,10 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ export GIT_DIR=~/project/.git +<pre><code>$ export GIT_DIR=~/project/.git $ cd ~/project_cvs_checkout $ git cvsexportcommit -v <commit-sha1> -$ cvs commit -F .msg <files></tt></pre> +$ cvs commit -F .msg <files></code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -924,7 +922,7 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt> $ git cvsexportcommit -v -c -w ~/project_cvs_checkout <commit-sha1></tt></pre> +<pre><code> $ git cvsexportcommit -v -c -w ~/project_cvs_checkout <commit-sha1></code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -933,9 +931,9 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ export GIT_DIR=~/project/.git +<pre><code>$ export GIT_DIR=~/project/.git $ cd ~/project_cvs_checkout -$ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit -c -p -v</tt></pre> +$ git cherry cvshead myhead | sed -n 's/^+ //p' | xargs -l1 git cvsexportcommit -c -p -v</code></pre> </div></div> </dd> </dl></div>
diff --git a/git-cvsimport.html b/git-cvsimport.html index ebe448b..9073808 100644 --- a/git-cvsimport.html +++ b/git-cvsimport.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-cvsimport(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -762,7 +760,7 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p><strong>WARNING:</strong> <tt>git cvsimport</tt> uses cvsps version 2, which is considered +<div class="paragraph"><p><strong>WARNING:</strong> <code>git cvsimport</code> uses cvsps version 2, which is considered deprecated; it does not work with cvsps version 3 and later. If you are performing a one-shot import of a CVS repository consider using <a href="http://cvs2svn.tigris.org/cvs2git.html">cvs2git</a> or @@ -806,8 +804,8 @@ The root of the CVS archive. May be local (a simple path) or remote; currently, only the :local:, :ext: and :pserver: access methods are supported. If not given, <em>git cvsimport</em> will try to read it - from <tt>CVS/Root</tt>. If no such file exists, it checks for the - <tt>CVSROOT</tt> environment variable. + from <code>CVS/Root</code>. If no such file exists, it checks for the + <code>CVSROOT</code> environment variable. </p> </dd> <dt class="hdlist1"> @@ -817,7 +815,7 @@ <p> The CVS module you want to import. Relative to <CVSROOT>. If not given, <em>git cvsimport</em> tries to read it from - <tt>CVS/Repository</tt>. + <code>CVS/Repository</code>. </p> </dd> <dt class="hdlist1"> @@ -979,14 +977,14 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt> exon=Andreas Ericsson <ae@op5.se> - spawn=Simon Pawn <spawn@frog-pond.org> America/Chicago</tt></pre> +<pre><code> exon=Andreas Ericsson <ae@op5.se> + spawn=Simon Pawn <spawn@frog-pond.org> America/Chicago</code></pre> </div></div> <div class="paragraph"><p><em>git cvsimport</em> will make it appear as those authors had their GIT_AUTHOR_NAME and GIT_AUTHOR_EMAIL set properly all along. If a time zone is specified, GIT_AUTHOR_DATE will have the corresponding offset applied.</p></div> -<div class="paragraph"><p>For convenience, this data is saved to <tt>$GIT_DIR/cvs-authors</tt> +<div class="paragraph"><p>For convenience, this data is saved to <code>$GIT_DIR/cvs-authors</code> each time the <em>-A</em> option is provided and read from that same file each time <em>git cvsimport</em> is run.</p></div> <div class="paragraph"><p>It is not recommended to use this feature if you intend to @@ -998,14 +996,14 @@ </dt> <dd> <p> - Generate a <tt>$GIT_DIR/cvs-revisions</tt> file containing a mapping from CVS + Generate a <code>$GIT_DIR/cvs-revisions</code> file containing a mapping from CVS revision numbers to newly-created Git commit IDs. The generated file will contain one line for each (filename, revision) pair imported; each line will look like </p> <div class="listingblock"> <div class="content"> -<pre><tt>src/widget.c 1.1 1d862f173cdc7325b6fa6d2ae1cfd61fd1b512b7</tt></pre> +<pre><code>src/widget.c 1.1 1d862f173cdc7325b6fa6d2ae1cfd61fd1b512b7</code></pre> </div></div> <div class="paragraph"><p>The revision data is appended to the file if it already exists, for use when doing incremental imports.</p></div> @@ -1091,7 +1089,7 @@ <div class="ulist"><ul> <li> <p> -cvs2git (part of cvs2svn), <tt>http://subversion.apache.org/</tt> +cvs2git (part of cvs2svn), <code>http://subversion.apache.org/</code> </p> </li> </ul></div>
diff --git a/git-cvsserver.html b/git-cvsserver.html index aa084c6..9091818 100644 --- a/git-cvsserver.html +++ b/git-cvsserver.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-cvsserver(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -795,7 +793,7 @@ </dt> <dd> <p> -Don’t check for <tt>gitcvs.enabled</tt> in config. You also have to specify a list +Don’t check for <code>gitcvs.enabled</code> in config. You also have to specify a list of allowed directories (see below) if you want to use this option. </p> </dd> @@ -831,7 +829,7 @@ <p> You can specify a list of allowed directories. If no directories are given, all are allowed. This is an additional restriction, gitcvs -access still needs to be enabled by the <tt>gitcvs.enabled</tt> config option +access still needs to be enabled by the <code>gitcvs.enabled</code> config option unless <em>--export-all</em> was given, too. </p> </dd> @@ -871,7 +869,7 @@ <div class="content"> <div class="listingblock"> <div class="content"> -<pre><tt> cvspserver stream tcp nowait nobody git-cvsserver pserver</tt></pre> +<pre><code> cvspserver stream tcp nowait nobody git-cvsserver pserver</code></pre> </div></div> <div class="paragraph"><p>Note: Some inetd servers let you specify the name of the executable independently of the value of argv[0] (i.e. the name the program assumes @@ -879,7 +877,7 @@ looks like</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver</tt></pre> +<pre><code> cvspserver stream tcp nowait nobody /usr/bin/git-cvsserver git-cvsserver pserver</code></pre> </div></div> <div class="paragraph"><p>Only anonymous access is provided by pserve by default. To commit you will have to create pserver accounts, simply add a gitcvs.authdb @@ -887,15 +885,15 @@ to allow writes to, for example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [gitcvs] - authdb = /etc/cvsserver/passwd</tt></pre> +<pre><code> [gitcvs] + authdb = /etc/cvsserver/passwd</code></pre> </div></div> <div class="paragraph"><p>The format of these files is username followed by the crypted password, for example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> myuser:$1Oyx5r9mdGZ2 - myuser:$1$BA)@$vbnMJMDym7tA32AamXrm./</tt></pre> +<pre><code> myuser:$1Oyx5r9mdGZ2 + myuser:$1$BA)@$vbnMJMDym7tA32AamXrm./</code></pre> </div></div> <div class="paragraph"><p>You can use the <em>htpasswd</em> facility that comes with Apache to make these files, but Apache’s MD5 crypt method differs from the one used by most C @@ -903,26 +901,26 @@ <div class="paragraph"><p>Alternatively you can produce the password with perl’s crypt() operator:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> perl -e 'my ($user, $pass) = @ARGV; printf "%s:%s\n", $user, crypt($user, $pass)' $USER password</tt></pre> +<pre><code> perl -e 'my ($user, $pass) = @ARGV; printf "%s:%s\n", $user, crypt($user, $pass)' $USER password</code></pre> </div></div> <div class="paragraph"><p>Then provide your password via the pserver method, for example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> cvs -d:pserver:someuser:somepassword <at> server/path/repo.git co <HEAD_name></tt></pre> +<pre><code> cvs -d:pserver:someuser:somepassword <at> server/path/repo.git co <HEAD_name></code></pre> </div></div> <div class="paragraph"><p>No special setup is needed for SSH access, other than having Git tools in the PATH. If you have clients that do not accept the CVS_SERVER -environment variable, you can rename <em>git-cvsserver</em> to <tt>cvs</tt>.</p></div> +environment variable, you can rename <em>git-cvsserver</em> to <code>cvs</code>.</p></div> <div class="paragraph"><p>Note: Newer CVS versions (>= 1.12.11) also support specifying CVS_SERVER directly in CVSROOT like</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>cvs -d ":ext;CVS_SERVER=git cvsserver:user@server/path/repo.git" co <HEAD_name></tt></pre> +<pre><code>cvs -d ":ext;CVS_SERVER=git cvsserver:user@server/path/repo.git" co <HEAD_name></code></pre> </div></div> <div class="paragraph"><p>This has the advantage that it will be saved in your <em>CVS/Root</em> files and you don’t need to worry about always setting the correct environment variable. SSH users restricted to <em>git-shell</em> don’t need to override the default -with CVS_SERVER (and shouldn’t) as <em>git-shell</em> understands <tt>cvs</tt> to mean +with CVS_SERVER (and shouldn’t) as <em>git-shell</em> understands <code>cvs</code> to mean <em>git-cvsserver</em> and pretends that the other end runs the real <em>cvs</em> better.</p></div> </div></div> </li> @@ -935,28 +933,28 @@ <div class="content"> <div class="listingblock"> <div class="content"> -<pre><tt> [gitcvs] +<pre><code> [gitcvs] enabled=1 # optional for debugging - logfile=/path/to/logfile</tt></pre> + logfile=/path/to/logfile</code></pre> </div></div> <div class="paragraph"><p>Note: you need to ensure each user that is going to invoke <em>git-cvsserver</em> has write access to the log file and to the database (see <a href="#dbbackend">Database Backend</a>. If you want to offer write access over SSH, the users of course also need write access to the Git repository itself.</p></div> <div class="paragraph"><p>You also need to ensure that each repository is "bare" (without a Git index -file) for <tt>cvs commit</tt> to work. See <a href="gitcvs-migration.html">gitcvs-migration(7)</a>.</p></div> +file) for <code>cvs commit</code> to work. See <a href="gitcvs-migration.html">gitcvs-migration(7)</a>.</p></div> <div class="paragraph" id="configaccessmethod"><p>All configuration variables can also be overridden for a specific method of access. Valid method names are "ext" (for SSH access) and "pserver". The following example configuration would disable pserver access while still allowing access over SSH.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [gitcvs] +<pre><code> [gitcvs] enabled=0 [gitcvs "ext"] - enabled=1</tt></pre> + enabled=1</code></pre> </div></div> </div></div> </li> @@ -972,8 +970,8 @@ <div class="content"> <div class="listingblock"> <div class="content"> -<pre><tt> export CVSROOT=:ext:user@server:/var/git/project.git - export CVS_SERVER="git cvsserver"</tt></pre> +<pre><code> export CVSROOT=:ext:user@server:/var/git/project.git + export CVS_SERVER="git cvsserver"</code></pre> </div></div> </div></div> </li> @@ -991,12 +989,12 @@ Clients should now be able to check out the project. Use the CVS <em>module</em> name to indicate what Git <em>head</em> you want to check out. This also sets the name of your newly checked-out directory, unless you tell it otherwise with - <tt>-d <dir_name></tt>. For example, this checks out <em>master</em> branch to the - <tt>project-master</tt> directory: + <code>-d <dir_name></code>. For example, this checks out <em>master</em> branch to the + <code>project-master</code> directory: </p> <div class="listingblock"> <div class="content"> -<pre><tt> cvs co -d project-master master</tt></pre> +<pre><code> cvs co -d project-master master</code></pre> </div></div> </li> </ol></div> @@ -1009,7 +1007,7 @@ store information about the repository to maintain consistent CVS revision numbers. The database needs to be updated (i.e. written to) after every commit.</p></div> -<div class="paragraph"><p>If the commit is done directly by using <tt>git</tt> (as opposed to +<div class="paragraph"><p>If the commit is done directly by using <code>git</code> (as opposed to using <em>git-cvsserver</em>) the update will need to happen on the next repository access by <em>git-cvsserver</em>, independent of access method and requested operation.</p></div> @@ -1018,7 +1016,7 @@ the database to work reliably (otherwise you need to make sure that the database is up-to-date any time <em>git-cvsserver</em> is executed).</p></div> <div class="paragraph"><p>By default it uses SQLite databases in the Git directory, named -<tt>gitcvs.<module_name>.sqlite</tt>. Note that the SQLite backend creates +<code>gitcvs.<module_name>.sqlite</code>. Note that the SQLite backend creates temporary files in the same directory as the database file on write so it might not be enough to grant the users using <em>git-cvsserver</em> write access to the database file without granting @@ -1029,7 +1027,7 @@ one branch of development, and after a <em>git merge</em> an incrementally updated database may track a different branch than a database regenerated from scratch, causing inconsistent -CVS revision numbers. <tt>git-cvsserver</tt> has no way of knowing which +CVS revision numbers. <code>git-cvsserver</code> has no way of knowing which branch it would have picked if it had been run incrementally pre-merge. So if you have to fully or partially (from old backup) regenerate the database, you should be suspicious @@ -1040,7 +1038,7 @@ <h3 id="_configuring_database_backend">Configuring database backend</h3> <div class="paragraph"><p><em>git-cvsserver</em> uses the Perl DBI module. Please also read its documentation if changing these variables, especially -about <tt>DBI->connect()</tt>.</p></div> +about <code>DBI->connect()</code>.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> gitcvs.dbname @@ -1050,7 +1048,7 @@ Database name. The exact meaning depends on the selected database driver, for SQLite this is a filename. Supports variable substitution (see below). May - not contain semicolons (<tt>;</tt>). + not contain semicolons (<code>;</code>). Default: <em>%Ggitcvs.%m.sqlite</em> </p> </dd> @@ -1064,7 +1062,7 @@ with <em>DBD::SQLite</em>, reported to work with <em>DBD::Pg</em>, and reported <strong>not</strong> to work with <em>DBD::mysql</em>. Please regard this as an experimental feature. May not - contain colons (<tt>:</tt>). + contain colons (<code>:</code>). Default: <em>SQLite</em> </p> </dd> @@ -1073,7 +1071,7 @@ </dt> <dd> <p> - Database user. Only useful if setting <tt>dbdriver</tt>, since + Database user. Only useful if setting <code>dbdriver</code>, since SQLite has no concept of database users. Supports variable substitution (see below). </p> @@ -1083,7 +1081,7 @@ </dt> <dd> <p> - Database password. Only useful if setting <tt>dbdriver</tt>, since + Database password. Only useful if setting <code>dbdriver</code>, since SQLite has no concept of database passwords. </p> </dd> @@ -1101,7 +1099,7 @@ <div class="paragraph"><p>All variables can also be set per access method, see <a href="#configaccessmethod">above</a>.</p></div> <div class="sect3"> <h4 id="_variable_substitution">Variable substitution</h4> -<div class="paragraph"><p>In <tt>dbdriver</tt> and <tt>dbuser</tt> you can use the following variables:</p></div> +<div class="paragraph"><p>In <code>dbdriver</code> and <code>dbuser</code> you can use the following variables:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> %G @@ -1117,8 +1115,8 @@ <dd> <p> Git directory name, where all characters except for - alpha-numeric ones, <tt>.</tt>, and <tt>-</tt> are replaced with - <tt>_</tt> (this should make it easier to use the directory + alpha-numeric ones, <code>.</code>, and <code>-</code> are replaced with + <code>_</code> (this should make it easier to use the directory name in a filename if wanted) </p> </dd> @@ -1199,11 +1197,11 @@ <div class="paragraph"><p>Protocol notes: If you are using anonymous access via pserver, just select that. Those using SSH access should choose the <em>ext</em> protocol, and configure <em>ext</em> access on the Preferences→Team→CVS→ExtConnection pane. Set CVS_SERVER to -"<tt>git cvsserver</tt>". Note that password support is not good when using <em>ext</em>, +"<code>git cvsserver</code>". Note that password support is not good when using <em>ext</em>, you will definitely want to have SSH keys setup.</p></div> <div class="paragraph"><p>Alternatively, you can just use the non-standard extssh protocol that Eclipse offer. In that case CVS_SERVER is ignored, and you will have to replace -the cvs utility on the server with <em>git-cvsserver</em> or manipulate your <tt>.bashrc</tt> +the cvs utility on the server with <em>git-cvsserver</em> or manipulate your <code>.bashrc</code> so that calling <em>cvs</em> effectively calls <em>git-cvsserver</em>.</p></div> </div> </div> @@ -1266,10 +1264,10 @@ some CVS clients don’t seem to do much sanity checking of the argument. Second, if that fails, you can use a special character escape mechanism that only uses characters that are valid in CVS tags. A sequence -of 4 or 5 characters of the form (underscore (<tt>"_"</tt>), dash (<tt>"-"</tt>), -one or two characters, and dash (<tt>"-"</tt>)) can encode various characters based -on the one or two letters: <tt>"s"</tt> for slash (<tt>"/"</tt>), <tt>"p"</tt> for -period (<tt>"."</tt>), <tt>"u"</tt> for underscore (<tt>"_"</tt>), or two hexadecimal digits +of 4 or 5 characters of the form (underscore (<code>"_"</code>), dash (<code>"-"</code>), +one or two characters, and dash (<code>"-"</code>)) can encode various characters based +on the one or two letters: <code>"s"</code> for slash (<code>"/"</code>), <code>"p"</code> for +period (<code>"."</code>), <code>"u"</code> for underscore (<code>"_"</code>), or two hexadecimal digits for any byte value at all (typically an ASCII number, or perhaps a part of a UTF-8 encoded character).</p></div> <div class="paragraph"><p>Legacy monitoring operations are not supported (edit, watch and related). @@ -1280,20 +1278,20 @@ which causes the CVS client to treat them as a text files, subject to end-of-line conversion on some platforms.</p></div> <div class="paragraph"><p>You can make the server use the end-of-line conversion attributes to -set the <em>-k</em> modes for files by setting the <tt>gitcvs.usecrlfattr</tt> +set the <em>-k</em> modes for files by setting the <code>gitcvs.usecrlfattr</code> config variable. See <a href="gitattributes.html">gitattributes(5)</a> for more information about end-of-line conversion.</p></div> -<div class="paragraph"><p>Alternatively, if <tt>gitcvs.usecrlfattr</tt> config is not enabled +<div class="paragraph"><p>Alternatively, if <code>gitcvs.usecrlfattr</code> config is not enabled or the attributes do not allow automatic detection for a filename, then -the server uses the <tt>gitcvs.allbinary</tt> config for the default setting. -If <tt>gitcvs.allbinary</tt> is set, then file not otherwise +the server uses the <code>gitcvs.allbinary</code> config for the default setting. +If <code>gitcvs.allbinary</code> is set, then file not otherwise specified will default to <em>-kb</em> mode. Otherwise the <em>-k</em> mode -is left blank. But if <tt>gitcvs.allbinary</tt> is set to "guess", then +is left blank. But if <code>gitcvs.allbinary</code> is set to "guess", then the correct <em>-k</em> mode will be guessed based on the contents of the file.</p></div> <div class="paragraph"><p>For best consistency with <em>cvs</em>, it is probably best to override the -defaults by setting <tt>gitcvs.usecrlfattr</tt> to true, -and <tt>gitcvs.allbinary</tt> to "guess".</p></div> +defaults by setting <code>gitcvs.usecrlfattr</code> to true, +and <code>gitcvs.allbinary</code> to "guess".</p></div> </div> </div> </div>
diff --git a/git-daemon.html b/git-daemon.html index 337bce5..4548e24 100644 --- a/git-daemon.html +++ b/git-daemon.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-daemon(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -778,12 +776,12 @@ for export this way (unless the <em>--export-all</em> parameter is specified). If you pass some directory paths as <em>git daemon</em> arguments, you can further restrict the offers to a whitelist comprising of those.</p></div> -<div class="paragraph"><p>By default, only <tt>upload-pack</tt> service is enabled, which serves +<div class="paragraph"><p>By default, only <code>upload-pack</code> service is enabled, which serves <em>git fetch-pack</em> and <em>git ls-remote</em> clients, which are invoked from <em>git fetch</em>, <em>git pull</em>, and <em>git clone</em>.</p></div> <div class="paragraph"><p>This is ideally suited for read-only updates, i.e., pulling from Git repositories.</p></div> -<div class="paragraph"><p>An <tt>upload-archive</tt> also exists to serve <em>git archive</em>.</p></div> +<div class="paragraph"><p>An <code>upload-archive</code> also exists to serve <em>git archive</em>.</p></div> </div> </div> <div class="sect1"> @@ -929,10 +927,10 @@ Allow ~user notation to be used in requests. When specified with no parameter, requests to git://host/~alice/foo is taken as a request to access - <em>foo</em> repository in the home directory of user <tt>alice</tt>. - If <tt>--user-path=path</tt> is specified, the same request is - taken as a request to access <tt>path/foo</tt> repository in - the home directory of user <tt>alice</tt>. + <em>foo</em> repository in the home directory of user <code>alice</code>. + If <code>--user-path=path</code> is specified, the same request is + taken as a request to access <code>path/foo</code> repository in + the home directory of user <code>alice</code>. </p> </dd> <dt class="hdlist1"> @@ -967,7 +965,7 @@ <dd> <p> Save the process id in <em>file</em>. Ignored when the daemon - is run under <tt>--inetd</tt>. + is run under <code>--inetd</code>. </p> </dd> <dt class="hdlist1"> @@ -979,20 +977,20 @@ <dd> <p> Change daemon’s uid and gid before entering the service loop. - When only <tt>--user</tt> is given without <tt>--group</tt>, the + When only <code>--user</code> is given without <code>--group</code>, the primary group ID for the user is used. The values of - the option are given to <tt>getpwnam(3)</tt> and <tt>getgrnam(3)</tt> + the option are given to <code>getpwnam(3)</code> and <code>getgrnam(3)</code> and numeric IDs are not supported. </p> -<div class="paragraph"><p>Giving these options is an error when used with <tt>--inetd</tt>; use +<div class="paragraph"><p>Giving these options is an error when used with <code>--inetd</code>; use the facility of inet daemon to achieve the same before spawning <em>git daemon</em> if needed.</p></div> <div class="paragraph"><p>Like many programs that switch user id, the daemon does not reset -environment variables such as <tt>$HOME</tt> when it runs git programs, -e.g. <tt>upload-pack</tt> and <tt>receive-pack</tt>. When using this option, you -may also want to set and export <tt>HOME</tt> to point at the home -directory of <tt><user></tt> before starting the daemon, and make sure any -Git configuration files in that directory are readable by <tt><user></tt>.</p></div> +environment variables such as <code>$HOME</code> when it runs git programs, +e.g. <code>upload-pack</code> and <code>receive-pack</code>. When using this option, you +may also want to set and export <code>HOME</code> to point at the home +directory of <code><user></code> before starting the daemon, and make sure any +Git configuration files in that directory are readable by <code><user></code>.</p></div> </dd> <dt class="hdlist1"> --enable=<service> @@ -1085,8 +1083,8 @@ <p> This serves <em>git fetch-pack</em> and <em>git ls-remote</em> clients. It is enabled by default, but a repository can - disable it by setting <tt>daemon.uploadpack</tt> configuration - item to <tt>false</tt>. + disable it by setting <code>daemon.uploadpack</code> configuration + item to <code>false</code>. </p> </dd> <dt class="hdlist1"> @@ -1096,7 +1094,7 @@ <p> This serves <em>git archive --remote</em>. It is disabled by default, but a repository can enable it by setting - <tt>daemon.uploadarch</tt> configuration item to <tt>true</tt>. + <code>daemon.uploadarch</code> configuration item to <code>true</code>. </p> </dd> <dt class="hdlist1"> @@ -1110,8 +1108,8 @@ can push anything into the repository, including removal of refs). This is solely meant for a closed LAN setting where everybody is friendly. This service can be - enabled by setting <tt>daemon.receivepack</tt> configuration item to - <tt>true</tt>. + enabled by setting <code>daemon.receivepack</code> configuration item to + <code>true</code>. </p> </dd> </dl></div> @@ -1127,8 +1125,8 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ grep 9418 /etc/services -git 9418/tcp # Git Version Control System</tt></pre> +<pre><code>$ grep 9418 /etc/services +git 9418/tcp # Git Version Control System</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -1143,9 +1141,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt> git stream tcp nowait nobody /usr/bin/git +<pre><code> git stream tcp nowait nobody /usr/bin/git git daemon --inetd --verbose --export-all - /pub/foo /pub/bar</tt></pre> + /pub/foo /pub/bar</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -1154,24 +1152,24 @@ <dd> <p> To set up <em>git daemon</em> as an inetd service that handles - repositories for different virtual hosts, <tt>www.example.com</tt> - and <tt>www.example.org</tt>, place an entry like the following into - <tt>/etc/inetd</tt> all on one line: + repositories for different virtual hosts, <code>www.example.com</code> + and <code>www.example.org</code>, place an entry like the following into + <code>/etc/inetd</code> all on one line: </p> <div class="listingblock"> <div class="content"> -<pre><tt> git stream tcp nowait nobody /usr/bin/git +<pre><code> git stream tcp nowait nobody /usr/bin/git git daemon --inetd --verbose --export-all --interpolated-path=/pub/%H%D /pub/www.example.org/software /pub/www.example.com/software - /software</tt></pre> + /software</code></pre> </div></div> -<div class="paragraph"><p>In this example, the root-level directory <tt>/pub</tt> will contain +<div class="paragraph"><p>In this example, the root-level directory <code>/pub</code> will contain a subdirectory for each virtual host name supported. Further, both hosts advertise repositories simply as -<tt>git://www.example.com/software/repo.git</tt>. For pre-1.4.0 -clients, a symlink from <tt>/software</tt> into the appropriate +<code>git://www.example.com/software/repo.git</code>. For pre-1.4.0 +clients, a symlink from <code>/software</code> into the appropriate default repository could be made as well.</p></div> </dd> <dt class="hdlist1"> @@ -1185,12 +1183,12 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt> git daemon --verbose --export-all +<pre><code> git daemon --verbose --export-all --interpolated-path=/pub/%IP/%D /pub/192.168.1.200/software - /pub/10.10.220.23/software</tt></pre> + /pub/10.10.220.23/software</code></pre> </div></div> -<div class="paragraph"><p>In this example, the root-level directory <tt>/pub</tt> will contain +<div class="paragraph"><p>In this example, the root-level directory <code>/pub</code> will contain a subdirectory for each virtual host IP address supported. Repositories can still be accessed by hostname though, assuming they correspond to these IP addresses.</p></div> @@ -1207,9 +1205,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt> [daemon] +<pre><code> [daemon] uploadpack = false - uploadarch = true</tt></pre> + uploadarch = true</code></pre> </div></div> </dd> </dl></div>
diff --git a/git-describe.html b/git-describe.html index af8570e..5af9257 100644 --- a/git-describe.html +++ b/git-describe.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-describe(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -764,7 +762,7 @@ shown. Otherwise, it suffixes the tag name with the number of additional commits on top of the tagged object and the abbreviated object name of the most recent commit.</p></div> -<div class="paragraph"><p>By default (without --all or --tags) <tt>git describe</tt> only shows +<div class="paragraph"><p>By default (without --all or --tags) <code>git describe</code> only shows annotated tags. For more information about creating annotated tags see the -a and -s options to <a href="git-tag.html">git-tag(1)</a>.</p></div> </div> @@ -787,7 +785,7 @@ <dd> <p> Describe the working tree. - It means describe HEAD and appends <mark> (<tt>-dirty</tt> by + It means describe HEAD and appends <mark> (<code>-dirty</code> by default) if the working tree is dirty. </p> </dd> @@ -797,7 +795,7 @@ <dd> <p> Instead of using only the annotated tags, use any ref - found in <tt>refs/</tt> namespace. This option enables matching + found in <code>refs/</code> namespace. This option enables matching any known branch, remote-tracking branch, or lightweight tag. </p> </dd> @@ -807,7 +805,7 @@ <dd> <p> Instead of using only the annotated tags, use any tag - found in <tt>refs/tags</tt> namespace. This option enables matching + found in <code>refs/tags</code> namespace. This option enables matching a lightweight (non-annotated) tag. </p> </dd> @@ -882,7 +880,7 @@ </dt> <dd> <p> - Only consider tags matching the given <tt>glob(7)</tt> pattern, + Only consider tags matching the given <code>glob(7)</code> pattern, excluding the "refs/tags/" prefix. This can be used to avoid leaking private tags from the repository. </p> @@ -914,8 +912,8 @@ <div class="paragraph"><p>With something like git.git current tree, I get:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>[torvalds@g5 git]$ git describe parent -v1.0.4-14-g2414721</tt></pre> +<pre><code>[torvalds@g5 git]$ git describe parent +v1.0.4-14-g2414721</code></pre> </div></div> <div class="paragraph"><p>i.e. the current head of my "parent" branch is based on v1.0.4, but since it has a few commits on top of that, @@ -925,34 +923,34 @@ <div class="paragraph"><p>The number of additional commits is the number of commits which would be displayed by "git log v1.0.4..parent". The hash suffix is "-g" + 7-char abbreviation for the tip commit -of parent (which was <tt>2414721b194453f058079d897d13c4e377f92dc6</tt>). +of parent (which was <code>2414721b194453f058079d897d13c4e377f92dc6</code>). The "g" prefix stands for "git" and is used to allow describing the version of a software depending on the SCM the software is managed with. This is useful in an environment where people may use different SCMs.</p></div> <div class="paragraph"><p>Doing a <em>git describe</em> on a tag-name will just show the tag name:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>[torvalds@g5 git]$ git describe v1.0.4 -v1.0.4</tt></pre> +<pre><code>[torvalds@g5 git]$ git describe v1.0.4 +v1.0.4</code></pre> </div></div> <div class="paragraph"><p>With --all, the command can use branch heads as references, so the output shows the reference path as well:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2 -tags/v1.0.0-21-g975b</tt></pre> +<pre><code>[torvalds@g5 git]$ git describe --all --abbrev=4 v1.0.5^2 +tags/v1.0.0-21-g975b</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>[torvalds@g5 git]$ git describe --all --abbrev=4 HEAD^ -heads/lt/describe-7-g975b</tt></pre> +<pre><code>[torvalds@g5 git]$ git describe --all --abbrev=4 HEAD^ +heads/lt/describe-7-g975b</code></pre> </div></div> <div class="paragraph"><p>With --abbrev set to 0, the command can be used to find the closest tagname without any suffix:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2 -tags/v1.0.0</tt></pre> +<pre><code>[torvalds@g5 git]$ git describe --abbrev=0 v1.0.5^2 +tags/v1.0.0</code></pre> </div></div> <div class="paragraph"><p>Note that the suffix you get if you type these commands today may be longer than what Linus saw above when he ran these commands, as your @@ -978,7 +976,7 @@ <div class="paragraph"><p>If multiple tags were found during the walk then the tag which has the fewest commits different from the input commit-ish will be selected and output. Here fewest commits different is defined as -the number of commits which would be shown by <tt>git log tag..input</tt> +the number of commits which would be shown by <code>git log tag..input</code> will be the smallest number of commits possible.</p></div> </div> </div>
diff --git a/git-diff-files.html b/git-diff-files.html index f444768..b1ec5d4 100644 --- a/git-diff-files.html +++ b/git-diff-files.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-diff-files(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -791,8 +789,8 @@ </dt> <dd> <p> - Suppress diff output. Useful for commands like <tt>git show</tt> that - show the patch by default, or to cancel the effect of <tt>--patch</tt>. + Suppress diff output. Useful for commands like <code>git show</code> that + show the patch by default, or to cancel the effect of <code>--patch</code>. </p> </dd> <dt class="hdlist1"> @@ -805,7 +803,7 @@ <p> Generate diffs with <n> lines of context instead of the usual three. - Implies <tt>-p</tt>. + Implies <code>-p</code>. </p> </dd> <dt class="hdlist1"> @@ -822,7 +820,7 @@ </dt> <dd> <p> - Synonym for <tt>-p --raw</tt>. + Synonym for <code>-p --raw</code>. </p> </dd> <dt class="hdlist1"> @@ -861,7 +859,7 @@ <div class="content"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>default</tt>, <tt>myers</tt> +<code>default</code>, <code>myers</code> </dt> <dd> <p> @@ -869,7 +867,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>minimal</tt> +<code>minimal</code> </dt> <dd> <p> @@ -878,7 +876,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>patience</tt> +<code>patience</code> </dt> <dd> <p> @@ -886,7 +884,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>histogram</tt> +<code>histogram</code> </dt> <dd> <p> @@ -898,7 +896,7 @@ </div></div> <div class="paragraph"><p>For instance, if you configured diff.algorithm variable to a non-default value and want to use the default one, then you -have to use <tt>--diff-algorithm=default</tt> option.</p></div> +have to use <code>--diff-algorithm=default</code> option.</p></div> </dd> <dt class="hdlist1"> --stat[=<width>[,<name-width>[,<count>]]] @@ -909,29 +907,29 @@ will be used for the filename part, and the rest for the graph part. Maximum width defaults to terminal width, or 80 columns if not connected to a terminal, and can be overridden by - <tt><width></tt>. The width of the filename part can be limited by - giving another width <tt><name-width></tt> after a comma. The width + <code><width></code>. The width of the filename part can be limited by + giving another width <code><name-width></code> after a comma. The width of the graph part can be limited by using - <tt>--stat-graph-width=<width></tt> (affects all commands generating - a stat graph) or by setting <tt>diff.statGraphWidth=<width></tt> - (does not affect <tt>git format-patch</tt>). - By giving a third parameter <tt><count></tt>, you can limit the - output to the first <tt><count></tt> lines, followed by <tt>...</tt> if + <code>--stat-graph-width=<width></code> (affects all commands generating + a stat graph) or by setting <code>diff.statGraphWidth=<width></code> + (does not affect <code>git format-patch</code>). + By giving a third parameter <code><count></code>, you can limit the + output to the first <code><count></code> lines, followed by <code>...</code> if there are more. </p> -<div class="paragraph"><p>These parameters can also be set individually with <tt>--stat-width=<width></tt>, -<tt>--stat-name-width=<name-width></tt> and <tt>--stat-count=<count></tt>.</p></div> +<div class="paragraph"><p>These parameters can also be set individually with <code>--stat-width=<width></code>, +<code>--stat-name-width=<name-width></code> and <code>--stat-count=<count></code>.</p></div> </dd> <dt class="hdlist1"> --numstat </dt> <dd> <p> - Similar to <tt>--stat</tt>, but shows number of added and + Similar to <code>--stat</code>, but shows number of added and deleted lines in decimal notation and pathname without abbreviation, to make it more machine friendly. For - binary files, outputs two <tt>-</tt> instead of saying - <tt>0 0</tt>. + binary files, outputs two <code>-</code> instead of saying + <code>0 0</code>. </p> </dd> <dt class="hdlist1"> @@ -939,7 +937,7 @@ </dt> <dd> <p> - Output only the last line of the <tt>--stat</tt> format containing total + Output only the last line of the <code>--stat</code> format containing total number of modified files, as well as number of added and deleted lines. </p> @@ -950,9 +948,9 @@ <dd> <p> Output the distribution of relative amount of changes for each - sub-directory. The behavior of <tt>--dirstat</tt> can be customized by + sub-directory. The behavior of <code>--dirstat</code> can be customized by passing it a comma separated list of parameters. - The defaults are controlled by the <tt>diff.dirstat</tt> configuration + The defaults are controlled by the <code>diff.dirstat</code> configuration variable (see <a href="git-config.html">git-config(1)</a>). The following parameters are available: </p> @@ -960,7 +958,7 @@ <div class="content"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>changes</tt> +<code>changes</code> </dt> <dd> <p> @@ -972,39 +970,39 @@ </p> </dd> <dt class="hdlist1"> -<tt>lines</tt> +<code>lines</code> </dt> <dd> <p> Compute the dirstat numbers by doing the regular line-based diff analysis, and summing the removed/added line counts. (For binary files, count 64-byte chunks instead, since binary files have no - natural concept of lines). This is a more expensive <tt>--dirstat</tt> - behavior than the <tt>changes</tt> behavior, but it does count rearranged + natural concept of lines). This is a more expensive <code>--dirstat</code> + behavior than the <code>changes</code> behavior, but it does count rearranged lines within a file as much as other changes. The resulting output - is consistent with what you get from the other <tt>--*stat</tt> options. + is consistent with what you get from the other <code>--*stat</code> options. </p> </dd> <dt class="hdlist1"> -<tt>files</tt> +<code>files</code> </dt> <dd> <p> Compute the dirstat numbers by counting the number of files changed. Each changed file counts equally in the dirstat analysis. This is - the computationally cheapest <tt>--dirstat</tt> behavior, since it does + the computationally cheapest <code>--dirstat</code> behavior, since it does not have to look at the file contents at all. </p> </dd> <dt class="hdlist1"> -<tt>cumulative</tt> +<code>cumulative</code> </dt> <dd> <p> Count changes in a child directory for the parent directory as well. - Note that when using <tt>cumulative</tt>, the sum of the percentages + Note that when using <code>cumulative</code>, the sum of the percentages reported may exceed 100%. The default (non-cumulative) behavior can - be specified with the <tt>noncumulative</tt> parameter. + be specified with the <code>noncumulative</code> parameter. </p> </dd> <dt class="hdlist1"> @@ -1022,7 +1020,7 @@ <div class="paragraph"><p>Example: The following will count changed files, while ignoring directories with less than 10% of the total amount of changed files, and accumulating child directory counts in the parent directories: -<tt>--dirstat=files,10,cumulative</tt>.</p></div> +<code>--dirstat=files,10,cumulative</code>.</p></div> </dd> <dt class="hdlist1"> --summary @@ -1038,7 +1036,7 @@ </dt> <dd> <p> - Synonym for <tt>-p --stat</tt>. + Synonym for <code>-p --stat</code>. </p> </dd> <dt class="hdlist1"> @@ -1046,11 +1044,11 @@ </dt> <dd> <p> - When <tt>--raw</tt>, <tt>--numstat</tt>, <tt>--name-only</tt> or <tt>--name-status</tt> has been + When <code>--raw</code>, <code>--numstat</code>, <code>--name-only</code> or <code>--name-status</code> has been given, do not munge pathnames and use NULs as output field terminators. </p> <div class="paragraph"><p>Without this option, each pathname output will have TAB, LF, double quotes, -and backslash characters replaced with <tt>\t</tt>, <tt>\n</tt>, <tt>\"</tt>, and <tt>\\</tt>, +and backslash characters replaced with <code>\t</code>, <code>\n</code>, <code>\"</code>, and <code>\\</code>, respectively, and the pathname will be enclosed in double quotes if any of those replacements occurred.</p></div> </dd> @@ -1068,7 +1066,7 @@ <dd> <p> Show only names and status of changed files. See the description - of the <tt>--diff-filter</tt> option on what the status letters mean. + of the <code>--diff-filter</code> option on what the status letters mean. </p> </dd> <dt class="hdlist1"> @@ -1076,13 +1074,13 @@ </dt> <dd> <p> - Specify how differences in submodules are shown. When <tt>--submodule</tt> - or <tt>--submodule=log</tt> is given, the <em>log</em> format is used. This format lists - the commits in the range like <a href="git-submodule.html">git-submodule(1)</a> <tt>summary</tt> does. - Omitting the <tt>--submodule</tt> option or specifying <tt>--submodule=short</tt>, + Specify how differences in submodules are shown. When <code>--submodule</code> + or <code>--submodule=log</code> is given, the <em>log</em> format is used. This format lists + the commits in the range like <a href="git-submodule.html">git-submodule(1)</a> <code>summary</code> does. + Omitting the <code>--submodule</code> option or specifying <code>--submodule=short</code>, uses the <em>short</em> format. This format just shows the names of the commits at the beginning and end of the range. Can be tweaked via the - <tt>diff.submodule</tt> configuration variable. + <code>diff.submodule</code> configuration variable. </p> </dd> <dt class="hdlist1"> @@ -1091,8 +1089,8 @@ <dd> <p> Show colored diff. - <tt>--color</tt> (i.e. without <em>=<when></em>) is the same as <tt>--color=always</tt>. - <em><when></em> can be one of <tt>always</tt>, <tt>never</tt>, or <tt>auto</tt>. + <code>--color</code> (i.e. without <em>=<when></em>) is the same as <code>--color=always</code>. + <em><when></em> can be one of <code>always</code>, <code>never</code>, or <code>auto</code>. </p> </dd> <dt class="hdlist1"> @@ -1101,7 +1099,7 @@ <dd> <p> Turn off colored diff. - It is the same as <tt>--color=never</tt>. + It is the same as <code>--color=never</code>. </p> </dd> <dt class="hdlist1"> @@ -1111,7 +1109,7 @@ <p> Show a word diff, using the <mode> to delimit changed words. By default, words are delimited by whitespace; see - <tt>--word-diff-regex</tt> below. The <mode> defaults to <em>plain</em>, and + <code>--word-diff-regex</code> below. The <mode> defaults to <em>plain</em>, and must be one of: </p> <div class="openblock"> @@ -1122,7 +1120,7 @@ </dt> <dd> <p> - Highlight changed words using only colors. Implies <tt>--color</tt>. + Highlight changed words using only colors. Implies <code>--color</code>. </p> </dd> <dt class="hdlist1"> @@ -1130,7 +1128,7 @@ </dt> <dd> <p> - Show words as <tt>[-removed-]</tt> and <tt>{+added+}</tt>. Makes no + Show words as <code>[-removed-]</code> and <code>{+added+}</code>. Makes no attempts to escape the delimiters if they appear in the input, so the output may be ambiguous. </p> @@ -1142,10 +1140,10 @@ <p> Use a special line-based format intended for script consumption. Added/removed/unchanged runs are printed in the - usual unified diff format, starting with a <tt>+</tt>/<tt>-</tt>/` ` + usual unified diff format, starting with a <code>+</code>/<code>-</code>/` ` character at the beginning of the line and extending to the end of the line. Newlines in the input are represented by a - tilde <tt>~</tt> on a line of its own. + tilde <code>~</code> on a line of its own. </p> </dd> <dt class="hdlist1"> @@ -1168,12 +1166,12 @@ <p> Use <regex> to decide what a word is, instead of considering runs of non-whitespace to be a word. Also implies - <tt>--word-diff</tt> unless it was already enabled. + <code>--word-diff</code> unless it was already enabled. </p> <div class="paragraph"><p>Every non-overlapping match of the <regex> is considered a word. Anything between these matches is considered whitespace and ignored(!) for the purposes of finding -differences. You may want to append <tt>|[^[:space:]]</tt> to your regular +differences. You may want to append <code>|[^[:space:]]</code> to your regular expression to make sure that it matches all non-whitespace characters. A match that contains a newline is silently truncated(!) at the newline.</p></div> @@ -1187,8 +1185,8 @@ </dt> <dd> <p> - Equivalent to <tt>--word-diff=color</tt> plus (if a regex was - specified) <tt>--word-diff-regex=<regex></tt>. + Equivalent to <code>--word-diff=color</code> plus (if a regex was + specified) <code>--word-diff-regex=<regex></code>. </p> </dd> <dt class="hdlist1"> @@ -1206,7 +1204,7 @@ <dd> <p> Warn if changes introduce whitespace errors. What are - considered whitespace errors is controlled by <tt>core.whitespace</tt> + considered whitespace errors is controlled by <code>core.whitespace</code> configuration. By default, trailing whitespaces (including lines that solely consist of whitespaces) and a space character that is immediately followed by a tab character inside the @@ -1230,8 +1228,8 @@ </dt> <dd> <p> - In addition to <tt>--full-index</tt>, output a binary diff that - can be applied with <tt>git-apply</tt>. + In addition to <code>--full-index</code>, output a binary diff that + can be applied with <code>git-apply</code>. </p> </dd> <dt class="hdlist1"> @@ -1242,9 +1240,9 @@ Instead of showing the full 40-byte hexadecimal object name in diff-raw format output and diff-tree header lines, show only a partial prefix. This is - independent of the <tt>--full-index</tt> option above, which controls + independent of the <code>--full-index</code> option above, which controls the diff-patch output format. Non default number of - digits can be specified with <tt>--abbrev=<n></tt>. + digits can be specified with <code>--abbrev=<n></code>. </p> </dd> <dt class="hdlist1"> @@ -1262,15 +1260,15 @@ not as a series of deletion and insertion mixed together with a very few lines that happen to match textually as the context, but as a single deletion of everything old followed by a single insertion of -everything new, and the number <tt>m</tt> controls this aspect of the -B -option (defaults to 60%). <tt>-B/70%</tt> specifies that less than 30% of the +everything new, and the number <code>m</code> controls this aspect of the -B +option (defaults to 60%). <code>-B/70%</code> specifies that less than 30% of the original should remain in the result for Git to consider it a total rewrite (i.e. otherwise the resulting patch will be a series of deletion and insertion mixed together with context lines).</p></div> <div class="paragraph"><p>When used with -M, a totally-rewritten file is also considered as the source of a rename (usually -M only considers a file that disappeared -as the source of a rename), and the number <tt>n</tt> controls this aspect of -the -B option (defaults to 50%). <tt>-B20%</tt> specifies that a change with +as the source of a rename), and the number <code>n</code> controls this aspect of +the -B option (defaults to 50%). <code>-B20%</code> specifies that a change with addition and deletion compared to 20% or more of the file’s size are eligible for being picked up as a possible source of a rename to another file.</p></div> @@ -1284,15 +1282,15 @@ <dd> <p> Detect renames. - If <tt>n</tt> is specified, it is a threshold on the similarity + If <code>n</code> is specified, it is a threshold on the similarity index (i.e. amount of addition/deletions compared to the - file’s size). For example, <tt>-M90%</tt> means Git should consider a + file’s size). For example, <code>-M90%</code> means Git should consider a delete/add pair to be a rename if more than 90% of the file - hasn’t changed. Without a <tt>%</tt> sign, the number is to be read as - a fraction, with a decimal point before it. I.e., <tt>-M5</tt> becomes - 0.5, and is thus the same as <tt>-M50%</tt>. Similarly, <tt>-M05</tt> is - the same as <tt>-M5%</tt>. To limit detection to exact renames, use - <tt>-M100%</tt>. The default similarity index is 50%. + hasn’t changed. Without a <code>%</code> sign, the number is to be read as + a fraction, with a decimal point before it. I.e., <code>-M5</code> becomes + 0.5, and is thus the same as <code>-M50%</code>. Similarly, <code>-M05</code> is + the same as <code>-M5%</code>. To limit detection to exact renames, use + <code>-M100%</code>. The default similarity index is 50%. </p> </dd> <dt class="hdlist1"> @@ -1303,8 +1301,8 @@ </dt> <dd> <p> - Detect copies as well as renames. See also <tt>--find-copies-harder</tt>. - If <tt>n</tt> is specified, it has the same meaning as for <tt>-M<n></tt>. + Detect copies as well as renames. See also <code>--find-copies-harder</code>. + If <code>n</code> is specified, it has the same meaning as for <code>-M<n></code>. </p> </dd> <dt class="hdlist1"> @@ -1312,13 +1310,13 @@ </dt> <dd> <p> - For performance reasons, by default, <tt>-C</tt> option finds copies only + For performance reasons, by default, <code>-C</code> option finds copies only if the original file of the copy was modified in the same changeset. This flag makes the command inspect unmodified files as candidates for the source of copy. This is a very expensive operation for large projects, so use it with caution. Giving more than one - <tt>-C</tt> option has the same effect. + <code>-C</code> option has the same effect. </p> </dd> <dt class="hdlist1"> @@ -1330,14 +1328,14 @@ <dd> <p> Omit the preimage for deletes, i.e. print only the header but not - the diff between the preimage and <tt>/dev/null</tt>. The resulting patch - is not meant to be applied with <tt>patch</tt> or <tt>git apply</tt>; this is + the diff between the preimage and <code>/dev/null</code>. The resulting patch + is not meant to be applied with <code>patch</code> or <code>git apply</code>; this is solely for people who want to just concentrate on reviewing the text after the change. In addition, the output obviously lack enough information to apply such a patch in reverse, even manually, hence the name of the option. </p> -<div class="paragraph"><p>When used together with <tt>-B</tt>, omit also the preimage in the deletion part +<div class="paragraph"><p>When used together with <code>-B</code>, omit also the preimage in the deletion part of a delete/create pair.</p></div> </dd> <dt class="hdlist1"> @@ -1345,7 +1343,7 @@ </dt> <dd> <p> - The <tt>-M</tt> and <tt>-C</tt> options require O(n^2) processing time where n + The <code>-M</code> and <code>-C</code> options require O(n^2) processing time where n is the number of potential rename/copy targets. This option prevents rename/copy detection from running if the number of rename/copy targets exceeds the specified @@ -1357,13 +1355,13 @@ </dt> <dd> <p> - Select only files that are Added (<tt>A</tt>), Copied (<tt>C</tt>), - Deleted (<tt>D</tt>), Modified (<tt>M</tt>), Renamed (<tt>R</tt>), have their - type (i.e. regular file, symlink, submodule, …) changed (<tt>T</tt>), - are Unmerged (<tt>U</tt>), are - Unknown (<tt>X</tt>), or have had their pairing Broken (<tt>B</tt>). + Select only files that are Added (<code>A</code>), Copied (<code>C</code>), + Deleted (<code>D</code>), Modified (<code>M</code>), Renamed (<code>R</code>), have their + type (i.e. regular file, symlink, submodule, …) changed (<code>T</code>), + are Unmerged (<code>U</code>), are + Unknown (<code>X</code>), or have had their pairing Broken (<code>B</code>). Any combination of the filter characters (including none) can be used. - When <tt>*</tt> (All-or-none) is added to the combination, all + When <code>*</code> (All-or-none) is added to the combination, all paths are selected if there is any file that matches other criteria in the comparison; if there is no file that matches other criteria, nothing is selected. @@ -1381,7 +1379,7 @@ <div class="paragraph"><p>It is useful when you’re looking for an exact block of code (like a struct), and want to know the history of that block since it first came into being: use the feature iteratively to feed the interesting -block in the preimage back into <tt>-S</tt>, and keep going until you get the +block in the preimage back into <code>-S</code>, and keep going until you get the very first version of the block.</p></div> </dd> <dt class="hdlist1"> @@ -1392,17 +1390,17 @@ Look for differences whose patch text contains added/removed lines that match <regex>. </p> -<div class="paragraph"><p>To illustrate the difference between <tt>-S<regex> --pickaxe-regex</tt> and -<tt>-G<regex></tt>, consider a commit with the following diff in the same +<div class="paragraph"><p>To illustrate the difference between <code>-S<regex> --pickaxe-regex</code> and +<code>-G<regex></code>, consider a commit with the following diff in the same file:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>+ return !regexec(regexp, two->ptr, 1, &regmatch, 0); +<pre><code>+ return !regexec(regexp, two->ptr, 1, &regmatch, 0); ... -- hit = !regexec(regexp, mf2.ptr, 1, &regmatch, 0);</tt></pre> +- hit = !regexec(regexp, mf2.ptr, 1, &regmatch, 0);</code></pre> </div></div> -<div class="paragraph"><p>While <tt>git log -G"regexec\(regexp"</tt> will show this commit, <tt>git log --S"regexec\(regexp" --pickaxe-regex</tt> will not (because the number of +<div class="paragraph"><p>While <code>git log -G"regexec\(regexp"</code> will show this commit, <code>git log +-S"regexec\(regexp" --pickaxe-regex</code> will not (because the number of occurrences of that string did not change).</p></div> <div class="paragraph"><p>See the <em>pickaxe</em> entry in <a href="gitdiffcore.html">gitdiffcore(7)</a> for more information.</p></div> @@ -1412,7 +1410,7 @@ </dt> <dd> <p> - When <tt>-S</tt> or <tt>-G</tt> finds a change, show all the changes in that + When <code>-S</code> or <code>-G</code> finds a change, show all the changes in that changeset, not just the files that contain the change in <string>. </p> @@ -1422,7 +1420,7 @@ </dt> <dd> <p> - Treat the <string> given to <tt>-S</tt> as an extended POSIX regular + Treat the <string> given to <code>-S</code> as an extended POSIX regular expression to match. </p> </dd> @@ -1433,9 +1431,9 @@ <p> Output the patch in the order specified in the <orderfile>, which has one shell glob pattern per line. - This overrides the <tt>diff.orderfile</tt> configuration variable - (see <a href="git-config.html">git-config(1)</a>). To cancel <tt>diff.orderfile</tt>, - use <tt>-O/dev/null</tt>. + This overrides the <code>diff.orderfile</code> configuration variable + (see <a href="git-config.html">git-config(1)</a>). To cancel <code>diff.orderfile</code>, + use <code>-O/dev/null</code>. </p> </dd> <dt class="hdlist1"> @@ -1548,7 +1546,7 @@ </dt> <dd> <p> - Disable all output of the program. Implies <tt>--exit-code</tt>. + Disable all output of the program. Implies <code>--exit-code</code>. </p> </dd> <dt class="hdlist1"> @@ -1727,12 +1725,12 @@ <div class="paragraph"><p>An output line is formatted this way:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>in-place edit :100644 100644 bcd1234... 0123456... M file0 +<pre><code>in-place edit :100644 100644 bcd1234... 0123456... M file0 copy-edit :100644 100644 abcd123... 1234567... C68 file1 file2 rename-edit :100644 100644 abcd123... 1234567... R86 file1 file3 create :000000 100644 0000000... 1234567... A file4 delete :100644 000000 1234567... 0000000... D file5 -unmerged :000000 000000 0000000... 0000000... U file6</tt></pre> +unmerged :000000 000000 0000000... 0000000... U file6</code></pre> </div></div> <div class="paragraph"><p>That is, from the left to the right:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -1864,10 +1862,10 @@ <div class="paragraph"><p>Example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>:100644 100644 5be4a4...... 000000...... M file.c</tt></pre> +<pre><code>:100644 100644 5be4a4...... 000000...... M file.c</code></pre> </div></div> -<div class="paragraph"><p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters -in pathnames are represented as <tt>\t</tt>, <tt>\n</tt>, and <tt>\\</tt>, +<div class="paragraph"><p>When <code>-z</code> option is not used, TAB, LF, and backslash characters +in pathnames are represented as <code>\t</code>, <code>\n</code>, and <code>\\</code>, respectively.</p></div> </div> </div> @@ -1908,7 +1906,7 @@ <div class="paragraph"><p>Example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c</tt></pre> +<pre><code>::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c</code></pre> </div></div> <div class="paragraph"><p>Note that <em>combined diff</em> lists only files which were modified from all parents.</p></div> @@ -1932,12 +1930,12 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>diff --git a/file1 b/file2</tt></pre> +<pre><code>diff --git a/file1 b/file2</code></pre> </div></div> -<div class="paragraph"><p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is +<div class="paragraph"><p>The <code>a/</code> and <code>b/</code> filenames are the same unless rename/copy is involved. Especially, even for a creation or a deletion, -<tt>/dev/null</tt> is <em>not</em> used in place of the <tt>a/</tt> or <tt>b/</tt> filenames.</p></div> -<div class="paragraph"><p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the +<code>/dev/null</code> is <em>not</em> used in place of the <code>a/</code> or <code>b/</code> filenames.</p></div> +<div class="paragraph"><p>When rename/copy is involved, <code>file1</code> and <code>file2</code> show the name of the source file of the rename/copy and the name of the file that rename/copy produces, respectively.</p></div> </li> @@ -1947,7 +1945,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>old mode <mode> +<pre><code>old mode <mode> new mode <mode> deleted file mode <mode> new file mode <mode> @@ -1957,11 +1955,11 @@ rename to <path> similarity index <number> dissimilarity index <number> -index <hash>..<hash> <mode></tt></pre> +index <hash>..<hash> <mode></code></pre> </div></div> <div class="paragraph"><p>File modes are printed as 6-digit octal numbers including the file type and file permission bits.</p></div> -<div class="paragraph"><p>Path names in extended headers do not include the <tt>a/</tt> and <tt>b/</tt> prefixes.</p></div> +<div class="paragraph"><p>Path names in extended headers do not include the <code>a/</code> and <code>b/</code> prefixes.</p></div> <div class="paragraph"><p>The similarity index is the percentage of unchanged lines, and the dissimilarity index is the percentage of changed lines. It is a rounded down integer, followed by a percent sign. The @@ -1975,26 +1973,26 @@ <li> <p> TAB, LF, double quote and backslash characters in pathnames - are represented as <tt>\t</tt>, <tt>\n</tt>, <tt>\"</tt> and <tt>\\</tt>, respectively. + are represented as <code>\t</code>, <code>\n</code>, <code>\"</code> and <code>\\</code>, respectively. If there is need for such substitution then the whole pathname is put in double quotes. </p> </li> <li> <p> -All the <tt>file1</tt> files in the output refer to files before the - commit, and all the <tt>file2</tt> files refer to files after the commit. +All the <code>file1</code> files in the output refer to files before the + commit, and all the <code>file2</code> files refer to files after the commit. It is incorrect to apply each change to each file sequentially. For example, this patch will swap a and b: </p> <div class="literalblock"> <div class="content"> -<pre><tt>diff --git a/a b/b +<pre><code>diff --git a/a b/b rename from a rename to b diff --git a/b b/a rename from b -rename to a</tt></pre> +rename to a</code></pre> </div></div> </li> </ol></div> @@ -2003,7 +2001,7 @@ <div class="sect1"> <h2 id="_combined_diff_format">combined diff format</h2> <div class="sectionbody"> -<div class="paragraph"><p>Any diff-generating command can take the ‘-c` or <tt>--cc</tt> option to +<div class="paragraph"><p>Any diff-generating command can take the ‘-c` or <code>--cc</code> option to produce a <em>combined diff</em> when showing a merge. This is the default format when showing merges with <a href="git-diff.html">git-diff(1)</a> or <a href="git-show.html">git-show(1)</a>. Note also that you can give the `-m’ option to any @@ -2012,7 +2010,7 @@ <div class="paragraph"><p>A <em>combined diff</em> format looks like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>diff --combined describe.c +<pre><code>diff --combined describe.c index fabadb8,cc95eb0..4866510 --- a/describe.c +++ b/describe.c @@ -2038,7 +2036,7 @@ + if (!initialized) { initialized = 1; - for_each_ref(get_name);</tt></pre> + for_each_ref(get_name);</code></pre> </div></div> <div class="olist arabic"><ol class="arabic"> <li> @@ -2048,12 +2046,12 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>diff --combined file</tt></pre> +<pre><code>diff --combined file</code></pre> </div></div> <div class="paragraph"><p>or like this (when <em>--cc</em> option is used):</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>diff --cc file</tt></pre> +<pre><code>diff --cc file</code></pre> </div></div> </li> <li> @@ -2063,12 +2061,12 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>index <hash>,<hash>..<hash> +<pre><code>index <hash>,<hash>..<hash> mode <mode>,<mode>..<mode> new file mode <mode> -deleted file mode <mode>,<mode></tt></pre> +deleted file mode <mode>,<mode></code></pre> </div></div> -<div class="paragraph"><p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of +<div class="paragraph"><p>The <code>mode <mode>,<mode>..<mode></code> line appears only if at least one of the <mode> is different from the rest. Extended headers with information about detected contents movement (renames and copying detection) are designed to work with diff of two @@ -2080,49 +2078,49 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>--- a/file -+++ b/file</tt></pre> +<pre><code>--- a/file ++++ b/file</code></pre> </div></div> <div class="paragraph"><p>Similar to two-line header for traditional <em>unified</em> diff -format, <tt>/dev/null</tt> is used to signal created or deleted +format, <code>/dev/null</code> is used to signal created or deleted files.</p></div> </li> <li> <p> Chunk header format is modified to prevent people from - accidentally feeding it to <tt>patch -p1</tt>. Combined diff format + accidentally feeding it to <code>patch -p1</code>. Combined diff format was created for review of merge commit changes, and was not meant for apply. The change is similar to the change in the extended <em>index</em> header: </p> <div class="literalblock"> <div class="content"> -<pre><tt>@@@ <from-file-range> <from-file-range> <to-file-range> @@@</tt></pre> +<pre><code>@@@ <from-file-range> <from-file-range> <to-file-range> @@@</code></pre> </div></div> -<div class="paragraph"><p>There are (number of parents + 1) <tt>@</tt> characters in the chunk +<div class="paragraph"><p>There are (number of parents + 1) <code>@</code> characters in the chunk header for combined diff format.</p></div> </li> </ol></div> <div class="paragraph"><p>Unlike the traditional <em>unified</em> diff format, which shows two -files A and B with a single column that has <tt>-</tt> (minus — appears in A but removed in B), <tt>+</tt> (plus — missing in A but -added to B), or <tt>" "</tt> (space — unchanged) prefix, this format +files A and B with a single column that has <code>-</code> (minus — appears in A but removed in B), <code>+</code> (plus — missing in A but +added to B), or <code>" "</code> (space — unchanged) prefix, this format compares two or more files file1, file2,… with one file X, and shows how X differs from each of fileN. One column for each of fileN is prepended to the output line to note how X’s line is different from it.</p></div> -<div class="paragraph"><p>A <tt>-</tt> character in the column N means that the line appears in -fileN but it does not appear in the result. A <tt>+</tt> character +<div class="paragraph"><p>A <code>-</code> character in the column N means that the line appears in +fileN but it does not appear in the result. A <code>+</code> character in the column N means that the line appears in the result, and fileN does not have that line (in other words, the line was added, from the point of view of that parent).</p></div> <div class="paragraph"><p>In the above example output, the function signature was changed -from both files (hence two <tt>-</tt> removals from both file1 and -file2, plus <tt>++</tt> to mean one line that was added does not appear +from both files (hence two <code>-</code> removals from both file1 and +file2, plus <code>++</code> to mean one line that was added does not appear in either file1 or file2). Also eight other lines are the same -from file1 but do not appear in file2 (hence prefixed with <tt>+</tt>).</p></div> -<div class="paragraph"><p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a +from file1 but do not appear in file2 (hence prefixed with <code>+</code>).</p></div> +<div class="paragraph"><p>When shown by <code>git diff-tree -c</code>, it compares the parents of a merge commit with the merge result (i.e. file1..fileN are the -parents). When shown by <tt>git diff-files -c</tt>, it compares the +parents). When shown by <code>git diff-files -c</code>, it compares the two unresolved merge parents with the working tree file (i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka "their version").</p></div> @@ -2131,25 +2129,25 @@ <div class="sect1"> <h2 id="_other_diff_formats">other diff formats</h2> <div class="sectionbody"> -<div class="paragraph"><p>The <tt>--summary</tt> option describes newly added, deleted, renamed and -copied files. The <tt>--stat</tt> option adds diffstat(1) graph to the +<div class="paragraph"><p>The <code>--summary</code> option describes newly added, deleted, renamed and +copied files. The <code>--stat</code> option adds diffstat(1) graph to the output. These options can be combined with other options, such as -<tt>-p</tt>, and are meant for human consumption.</p></div> -<div class="paragraph"><p>When showing a change that involves a rename or a copy, <tt>--stat</tt> output +<code>-p</code>, and are meant for human consumption.</p></div> +<div class="paragraph"><p>When showing a change that involves a rename or a copy, <code>--stat</code> output formats the pathnames compactly by combining common prefix and suffix of -the pathnames. For example, a change that moves <tt>arch/i386/Makefile</tt> to -<tt>arch/x86/Makefile</tt> while modifying 4 lines will be shown like this:</p></div> +the pathnames. For example, a change that moves <code>arch/i386/Makefile</code> to +<code>arch/x86/Makefile</code> while modifying 4 lines will be shown like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>arch/{i386 => x86}/Makefile | 4 +--</tt></pre> +<pre><code>arch/{i386 => x86}/Makefile | 4 +--</code></pre> </div></div> -<div class="paragraph"><p>The <tt>--numstat</tt> option gives the diffstat(1) information but is designed -for easier machine consumption. An entry in <tt>--numstat</tt> output looks +<div class="paragraph"><p>The <code>--numstat</code> option gives the diffstat(1) information but is designed +for easier machine consumption. An entry in <code>--numstat</code> output looks like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>1 2 README -3 1 arch/{i386 => x86}/Makefile</tt></pre> +<pre><code>1 2 README +3 1 arch/{i386 => x86}/Makefile</code></pre> </div></div> <div class="paragraph"><p>That is, from left to right:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -2184,11 +2182,11 @@ </p> </li> </ol></div> -<div class="paragraph"><p>When <tt>-z</tt> output option is in effect, the output is formatted this way:</p></div> +<div class="paragraph"><p>When <code>-z</code> output option is in effect, the output is formatted this way:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>1 2 README NUL -3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL</tt></pre> +<pre><code>1 2 README NUL +3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL</code></pre> </div></div> <div class="paragraph"><p>That is:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -2238,11 +2236,11 @@ </p> </li> </ol></div> -<div class="paragraph"><p>The extra <tt>NUL</tt> before the preimage path in renamed case is to allow +<div class="paragraph"><p>The extra <code>NUL</code> before the preimage path in renamed case is to allow scripts that read the output to tell if the current record being read is a single-path record or a rename/copy record without reading ahead. -After reading added and deleted lines, reading up to <tt>NUL</tt> would yield -the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p></div> +After reading added and deleted lines, reading up to <code>NUL</code> would yield +the pathname, but if that is <code>NUL</code>, the record will show two paths.</p></div> </div> </div> <div class="sect1">
diff --git a/git-diff-index.html b/git-diff-index.html index bff760a..0a4f851 100644 --- a/git-diff-index.html +++ b/git-diff-index.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-diff-index(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -792,8 +790,8 @@ </dt> <dd> <p> - Suppress diff output. Useful for commands like <tt>git show</tt> that - show the patch by default, or to cancel the effect of <tt>--patch</tt>. + Suppress diff output. Useful for commands like <code>git show</code> that + show the patch by default, or to cancel the effect of <code>--patch</code>. </p> </dd> <dt class="hdlist1"> @@ -806,7 +804,7 @@ <p> Generate diffs with <n> lines of context instead of the usual three. - Implies <tt>-p</tt>. + Implies <code>-p</code>. </p> </dd> <dt class="hdlist1"> @@ -823,7 +821,7 @@ </dt> <dd> <p> - Synonym for <tt>-p --raw</tt>. + Synonym for <code>-p --raw</code>. </p> </dd> <dt class="hdlist1"> @@ -862,7 +860,7 @@ <div class="content"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>default</tt>, <tt>myers</tt> +<code>default</code>, <code>myers</code> </dt> <dd> <p> @@ -870,7 +868,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>minimal</tt> +<code>minimal</code> </dt> <dd> <p> @@ -879,7 +877,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>patience</tt> +<code>patience</code> </dt> <dd> <p> @@ -887,7 +885,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>histogram</tt> +<code>histogram</code> </dt> <dd> <p> @@ -899,7 +897,7 @@ </div></div> <div class="paragraph"><p>For instance, if you configured diff.algorithm variable to a non-default value and want to use the default one, then you -have to use <tt>--diff-algorithm=default</tt> option.</p></div> +have to use <code>--diff-algorithm=default</code> option.</p></div> </dd> <dt class="hdlist1"> --stat[=<width>[,<name-width>[,<count>]]] @@ -910,29 +908,29 @@ will be used for the filename part, and the rest for the graph part. Maximum width defaults to terminal width, or 80 columns if not connected to a terminal, and can be overridden by - <tt><width></tt>. The width of the filename part can be limited by - giving another width <tt><name-width></tt> after a comma. The width + <code><width></code>. The width of the filename part can be limited by + giving another width <code><name-width></code> after a comma. The width of the graph part can be limited by using - <tt>--stat-graph-width=<width></tt> (affects all commands generating - a stat graph) or by setting <tt>diff.statGraphWidth=<width></tt> - (does not affect <tt>git format-patch</tt>). - By giving a third parameter <tt><count></tt>, you can limit the - output to the first <tt><count></tt> lines, followed by <tt>...</tt> if + <code>--stat-graph-width=<width></code> (affects all commands generating + a stat graph) or by setting <code>diff.statGraphWidth=<width></code> + (does not affect <code>git format-patch</code>). + By giving a third parameter <code><count></code>, you can limit the + output to the first <code><count></code> lines, followed by <code>...</code> if there are more. </p> -<div class="paragraph"><p>These parameters can also be set individually with <tt>--stat-width=<width></tt>, -<tt>--stat-name-width=<name-width></tt> and <tt>--stat-count=<count></tt>.</p></div> +<div class="paragraph"><p>These parameters can also be set individually with <code>--stat-width=<width></code>, +<code>--stat-name-width=<name-width></code> and <code>--stat-count=<count></code>.</p></div> </dd> <dt class="hdlist1"> --numstat </dt> <dd> <p> - Similar to <tt>--stat</tt>, but shows number of added and + Similar to <code>--stat</code>, but shows number of added and deleted lines in decimal notation and pathname without abbreviation, to make it more machine friendly. For - binary files, outputs two <tt>-</tt> instead of saying - <tt>0 0</tt>. + binary files, outputs two <code>-</code> instead of saying + <code>0 0</code>. </p> </dd> <dt class="hdlist1"> @@ -940,7 +938,7 @@ </dt> <dd> <p> - Output only the last line of the <tt>--stat</tt> format containing total + Output only the last line of the <code>--stat</code> format containing total number of modified files, as well as number of added and deleted lines. </p> @@ -951,9 +949,9 @@ <dd> <p> Output the distribution of relative amount of changes for each - sub-directory. The behavior of <tt>--dirstat</tt> can be customized by + sub-directory. The behavior of <code>--dirstat</code> can be customized by passing it a comma separated list of parameters. - The defaults are controlled by the <tt>diff.dirstat</tt> configuration + The defaults are controlled by the <code>diff.dirstat</code> configuration variable (see <a href="git-config.html">git-config(1)</a>). The following parameters are available: </p> @@ -961,7 +959,7 @@ <div class="content"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>changes</tt> +<code>changes</code> </dt> <dd> <p> @@ -973,39 +971,39 @@ </p> </dd> <dt class="hdlist1"> -<tt>lines</tt> +<code>lines</code> </dt> <dd> <p> Compute the dirstat numbers by doing the regular line-based diff analysis, and summing the removed/added line counts. (For binary files, count 64-byte chunks instead, since binary files have no - natural concept of lines). This is a more expensive <tt>--dirstat</tt> - behavior than the <tt>changes</tt> behavior, but it does count rearranged + natural concept of lines). This is a more expensive <code>--dirstat</code> + behavior than the <code>changes</code> behavior, but it does count rearranged lines within a file as much as other changes. The resulting output - is consistent with what you get from the other <tt>--*stat</tt> options. + is consistent with what you get from the other <code>--*stat</code> options. </p> </dd> <dt class="hdlist1"> -<tt>files</tt> +<code>files</code> </dt> <dd> <p> Compute the dirstat numbers by counting the number of files changed. Each changed file counts equally in the dirstat analysis. This is - the computationally cheapest <tt>--dirstat</tt> behavior, since it does + the computationally cheapest <code>--dirstat</code> behavior, since it does not have to look at the file contents at all. </p> </dd> <dt class="hdlist1"> -<tt>cumulative</tt> +<code>cumulative</code> </dt> <dd> <p> Count changes in a child directory for the parent directory as well. - Note that when using <tt>cumulative</tt>, the sum of the percentages + Note that when using <code>cumulative</code>, the sum of the percentages reported may exceed 100%. The default (non-cumulative) behavior can - be specified with the <tt>noncumulative</tt> parameter. + be specified with the <code>noncumulative</code> parameter. </p> </dd> <dt class="hdlist1"> @@ -1023,7 +1021,7 @@ <div class="paragraph"><p>Example: The following will count changed files, while ignoring directories with less than 10% of the total amount of changed files, and accumulating child directory counts in the parent directories: -<tt>--dirstat=files,10,cumulative</tt>.</p></div> +<code>--dirstat=files,10,cumulative</code>.</p></div> </dd> <dt class="hdlist1"> --summary @@ -1039,7 +1037,7 @@ </dt> <dd> <p> - Synonym for <tt>-p --stat</tt>. + Synonym for <code>-p --stat</code>. </p> </dd> <dt class="hdlist1"> @@ -1047,11 +1045,11 @@ </dt> <dd> <p> - When <tt>--raw</tt>, <tt>--numstat</tt>, <tt>--name-only</tt> or <tt>--name-status</tt> has been + When <code>--raw</code>, <code>--numstat</code>, <code>--name-only</code> or <code>--name-status</code> has been given, do not munge pathnames and use NULs as output field terminators. </p> <div class="paragraph"><p>Without this option, each pathname output will have TAB, LF, double quotes, -and backslash characters replaced with <tt>\t</tt>, <tt>\n</tt>, <tt>\"</tt>, and <tt>\\</tt>, +and backslash characters replaced with <code>\t</code>, <code>\n</code>, <code>\"</code>, and <code>\\</code>, respectively, and the pathname will be enclosed in double quotes if any of those replacements occurred.</p></div> </dd> @@ -1069,7 +1067,7 @@ <dd> <p> Show only names and status of changed files. See the description - of the <tt>--diff-filter</tt> option on what the status letters mean. + of the <code>--diff-filter</code> option on what the status letters mean. </p> </dd> <dt class="hdlist1"> @@ -1077,13 +1075,13 @@ </dt> <dd> <p> - Specify how differences in submodules are shown. When <tt>--submodule</tt> - or <tt>--submodule=log</tt> is given, the <em>log</em> format is used. This format lists - the commits in the range like <a href="git-submodule.html">git-submodule(1)</a> <tt>summary</tt> does. - Omitting the <tt>--submodule</tt> option or specifying <tt>--submodule=short</tt>, + Specify how differences in submodules are shown. When <code>--submodule</code> + or <code>--submodule=log</code> is given, the <em>log</em> format is used. This format lists + the commits in the range like <a href="git-submodule.html">git-submodule(1)</a> <code>summary</code> does. + Omitting the <code>--submodule</code> option or specifying <code>--submodule=short</code>, uses the <em>short</em> format. This format just shows the names of the commits at the beginning and end of the range. Can be tweaked via the - <tt>diff.submodule</tt> configuration variable. + <code>diff.submodule</code> configuration variable. </p> </dd> <dt class="hdlist1"> @@ -1092,8 +1090,8 @@ <dd> <p> Show colored diff. - <tt>--color</tt> (i.e. without <em>=<when></em>) is the same as <tt>--color=always</tt>. - <em><when></em> can be one of <tt>always</tt>, <tt>never</tt>, or <tt>auto</tt>. + <code>--color</code> (i.e. without <em>=<when></em>) is the same as <code>--color=always</code>. + <em><when></em> can be one of <code>always</code>, <code>never</code>, or <code>auto</code>. </p> </dd> <dt class="hdlist1"> @@ -1102,7 +1100,7 @@ <dd> <p> Turn off colored diff. - It is the same as <tt>--color=never</tt>. + It is the same as <code>--color=never</code>. </p> </dd> <dt class="hdlist1"> @@ -1112,7 +1110,7 @@ <p> Show a word diff, using the <mode> to delimit changed words. By default, words are delimited by whitespace; see - <tt>--word-diff-regex</tt> below. The <mode> defaults to <em>plain</em>, and + <code>--word-diff-regex</code> below. The <mode> defaults to <em>plain</em>, and must be one of: </p> <div class="openblock"> @@ -1123,7 +1121,7 @@ </dt> <dd> <p> - Highlight changed words using only colors. Implies <tt>--color</tt>. + Highlight changed words using only colors. Implies <code>--color</code>. </p> </dd> <dt class="hdlist1"> @@ -1131,7 +1129,7 @@ </dt> <dd> <p> - Show words as <tt>[-removed-]</tt> and <tt>{+added+}</tt>. Makes no + Show words as <code>[-removed-]</code> and <code>{+added+}</code>. Makes no attempts to escape the delimiters if they appear in the input, so the output may be ambiguous. </p> @@ -1143,10 +1141,10 @@ <p> Use a special line-based format intended for script consumption. Added/removed/unchanged runs are printed in the - usual unified diff format, starting with a <tt>+</tt>/<tt>-</tt>/` ` + usual unified diff format, starting with a <code>+</code>/<code>-</code>/` ` character at the beginning of the line and extending to the end of the line. Newlines in the input are represented by a - tilde <tt>~</tt> on a line of its own. + tilde <code>~</code> on a line of its own. </p> </dd> <dt class="hdlist1"> @@ -1169,12 +1167,12 @@ <p> Use <regex> to decide what a word is, instead of considering runs of non-whitespace to be a word. Also implies - <tt>--word-diff</tt> unless it was already enabled. + <code>--word-diff</code> unless it was already enabled. </p> <div class="paragraph"><p>Every non-overlapping match of the <regex> is considered a word. Anything between these matches is considered whitespace and ignored(!) for the purposes of finding -differences. You may want to append <tt>|[^[:space:]]</tt> to your regular +differences. You may want to append <code>|[^[:space:]]</code> to your regular expression to make sure that it matches all non-whitespace characters. A match that contains a newline is silently truncated(!) at the newline.</p></div> @@ -1188,8 +1186,8 @@ </dt> <dd> <p> - Equivalent to <tt>--word-diff=color</tt> plus (if a regex was - specified) <tt>--word-diff-regex=<regex></tt>. + Equivalent to <code>--word-diff=color</code> plus (if a regex was + specified) <code>--word-diff-regex=<regex></code>. </p> </dd> <dt class="hdlist1"> @@ -1207,7 +1205,7 @@ <dd> <p> Warn if changes introduce whitespace errors. What are - considered whitespace errors is controlled by <tt>core.whitespace</tt> + considered whitespace errors is controlled by <code>core.whitespace</code> configuration. By default, trailing whitespaces (including lines that solely consist of whitespaces) and a space character that is immediately followed by a tab character inside the @@ -1231,8 +1229,8 @@ </dt> <dd> <p> - In addition to <tt>--full-index</tt>, output a binary diff that - can be applied with <tt>git-apply</tt>. + In addition to <code>--full-index</code>, output a binary diff that + can be applied with <code>git-apply</code>. </p> </dd> <dt class="hdlist1"> @@ -1243,9 +1241,9 @@ Instead of showing the full 40-byte hexadecimal object name in diff-raw format output and diff-tree header lines, show only a partial prefix. This is - independent of the <tt>--full-index</tt> option above, which controls + independent of the <code>--full-index</code> option above, which controls the diff-patch output format. Non default number of - digits can be specified with <tt>--abbrev=<n></tt>. + digits can be specified with <code>--abbrev=<n></code>. </p> </dd> <dt class="hdlist1"> @@ -1263,15 +1261,15 @@ not as a series of deletion and insertion mixed together with a very few lines that happen to match textually as the context, but as a single deletion of everything old followed by a single insertion of -everything new, and the number <tt>m</tt> controls this aspect of the -B -option (defaults to 60%). <tt>-B/70%</tt> specifies that less than 30% of the +everything new, and the number <code>m</code> controls this aspect of the -B +option (defaults to 60%). <code>-B/70%</code> specifies that less than 30% of the original should remain in the result for Git to consider it a total rewrite (i.e. otherwise the resulting patch will be a series of deletion and insertion mixed together with context lines).</p></div> <div class="paragraph"><p>When used with -M, a totally-rewritten file is also considered as the source of a rename (usually -M only considers a file that disappeared -as the source of a rename), and the number <tt>n</tt> controls this aspect of -the -B option (defaults to 50%). <tt>-B20%</tt> specifies that a change with +as the source of a rename), and the number <code>n</code> controls this aspect of +the -B option (defaults to 50%). <code>-B20%</code> specifies that a change with addition and deletion compared to 20% or more of the file’s size are eligible for being picked up as a possible source of a rename to another file.</p></div> @@ -1285,15 +1283,15 @@ <dd> <p> Detect renames. - If <tt>n</tt> is specified, it is a threshold on the similarity + If <code>n</code> is specified, it is a threshold on the similarity index (i.e. amount of addition/deletions compared to the - file’s size). For example, <tt>-M90%</tt> means Git should consider a + file’s size). For example, <code>-M90%</code> means Git should consider a delete/add pair to be a rename if more than 90% of the file - hasn’t changed. Without a <tt>%</tt> sign, the number is to be read as - a fraction, with a decimal point before it. I.e., <tt>-M5</tt> becomes - 0.5, and is thus the same as <tt>-M50%</tt>. Similarly, <tt>-M05</tt> is - the same as <tt>-M5%</tt>. To limit detection to exact renames, use - <tt>-M100%</tt>. The default similarity index is 50%. + hasn’t changed. Without a <code>%</code> sign, the number is to be read as + a fraction, with a decimal point before it. I.e., <code>-M5</code> becomes + 0.5, and is thus the same as <code>-M50%</code>. Similarly, <code>-M05</code> is + the same as <code>-M5%</code>. To limit detection to exact renames, use + <code>-M100%</code>. The default similarity index is 50%. </p> </dd> <dt class="hdlist1"> @@ -1304,8 +1302,8 @@ </dt> <dd> <p> - Detect copies as well as renames. See also <tt>--find-copies-harder</tt>. - If <tt>n</tt> is specified, it has the same meaning as for <tt>-M<n></tt>. + Detect copies as well as renames. See also <code>--find-copies-harder</code>. + If <code>n</code> is specified, it has the same meaning as for <code>-M<n></code>. </p> </dd> <dt class="hdlist1"> @@ -1313,13 +1311,13 @@ </dt> <dd> <p> - For performance reasons, by default, <tt>-C</tt> option finds copies only + For performance reasons, by default, <code>-C</code> option finds copies only if the original file of the copy was modified in the same changeset. This flag makes the command inspect unmodified files as candidates for the source of copy. This is a very expensive operation for large projects, so use it with caution. Giving more than one - <tt>-C</tt> option has the same effect. + <code>-C</code> option has the same effect. </p> </dd> <dt class="hdlist1"> @@ -1331,14 +1329,14 @@ <dd> <p> Omit the preimage for deletes, i.e. print only the header but not - the diff between the preimage and <tt>/dev/null</tt>. The resulting patch - is not meant to be applied with <tt>patch</tt> or <tt>git apply</tt>; this is + the diff between the preimage and <code>/dev/null</code>. The resulting patch + is not meant to be applied with <code>patch</code> or <code>git apply</code>; this is solely for people who want to just concentrate on reviewing the text after the change. In addition, the output obviously lack enough information to apply such a patch in reverse, even manually, hence the name of the option. </p> -<div class="paragraph"><p>When used together with <tt>-B</tt>, omit also the preimage in the deletion part +<div class="paragraph"><p>When used together with <code>-B</code>, omit also the preimage in the deletion part of a delete/create pair.</p></div> </dd> <dt class="hdlist1"> @@ -1346,7 +1344,7 @@ </dt> <dd> <p> - The <tt>-M</tt> and <tt>-C</tt> options require O(n^2) processing time where n + The <code>-M</code> and <code>-C</code> options require O(n^2) processing time where n is the number of potential rename/copy targets. This option prevents rename/copy detection from running if the number of rename/copy targets exceeds the specified @@ -1358,13 +1356,13 @@ </dt> <dd> <p> - Select only files that are Added (<tt>A</tt>), Copied (<tt>C</tt>), - Deleted (<tt>D</tt>), Modified (<tt>M</tt>), Renamed (<tt>R</tt>), have their - type (i.e. regular file, symlink, submodule, …) changed (<tt>T</tt>), - are Unmerged (<tt>U</tt>), are - Unknown (<tt>X</tt>), or have had their pairing Broken (<tt>B</tt>). + Select only files that are Added (<code>A</code>), Copied (<code>C</code>), + Deleted (<code>D</code>), Modified (<code>M</code>), Renamed (<code>R</code>), have their + type (i.e. regular file, symlink, submodule, …) changed (<code>T</code>), + are Unmerged (<code>U</code>), are + Unknown (<code>X</code>), or have had their pairing Broken (<code>B</code>). Any combination of the filter characters (including none) can be used. - When <tt>*</tt> (All-or-none) is added to the combination, all + When <code>*</code> (All-or-none) is added to the combination, all paths are selected if there is any file that matches other criteria in the comparison; if there is no file that matches other criteria, nothing is selected. @@ -1382,7 +1380,7 @@ <div class="paragraph"><p>It is useful when you’re looking for an exact block of code (like a struct), and want to know the history of that block since it first came into being: use the feature iteratively to feed the interesting -block in the preimage back into <tt>-S</tt>, and keep going until you get the +block in the preimage back into <code>-S</code>, and keep going until you get the very first version of the block.</p></div> </dd> <dt class="hdlist1"> @@ -1393,17 +1391,17 @@ Look for differences whose patch text contains added/removed lines that match <regex>. </p> -<div class="paragraph"><p>To illustrate the difference between <tt>-S<regex> --pickaxe-regex</tt> and -<tt>-G<regex></tt>, consider a commit with the following diff in the same +<div class="paragraph"><p>To illustrate the difference between <code>-S<regex> --pickaxe-regex</code> and +<code>-G<regex></code>, consider a commit with the following diff in the same file:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>+ return !regexec(regexp, two->ptr, 1, &regmatch, 0); +<pre><code>+ return !regexec(regexp, two->ptr, 1, &regmatch, 0); ... -- hit = !regexec(regexp, mf2.ptr, 1, &regmatch, 0);</tt></pre> +- hit = !regexec(regexp, mf2.ptr, 1, &regmatch, 0);</code></pre> </div></div> -<div class="paragraph"><p>While <tt>git log -G"regexec\(regexp"</tt> will show this commit, <tt>git log --S"regexec\(regexp" --pickaxe-regex</tt> will not (because the number of +<div class="paragraph"><p>While <code>git log -G"regexec\(regexp"</code> will show this commit, <code>git log +-S"regexec\(regexp" --pickaxe-regex</code> will not (because the number of occurrences of that string did not change).</p></div> <div class="paragraph"><p>See the <em>pickaxe</em> entry in <a href="gitdiffcore.html">gitdiffcore(7)</a> for more information.</p></div> @@ -1413,7 +1411,7 @@ </dt> <dd> <p> - When <tt>-S</tt> or <tt>-G</tt> finds a change, show all the changes in that + When <code>-S</code> or <code>-G</code> finds a change, show all the changes in that changeset, not just the files that contain the change in <string>. </p> @@ -1423,7 +1421,7 @@ </dt> <dd> <p> - Treat the <string> given to <tt>-S</tt> as an extended POSIX regular + Treat the <string> given to <code>-S</code> as an extended POSIX regular expression to match. </p> </dd> @@ -1434,9 +1432,9 @@ <p> Output the patch in the order specified in the <orderfile>, which has one shell glob pattern per line. - This overrides the <tt>diff.orderfile</tt> configuration variable - (see <a href="git-config.html">git-config(1)</a>). To cancel <tt>diff.orderfile</tt>, - use <tt>-O/dev/null</tt>. + This overrides the <code>diff.orderfile</code> configuration variable + (see <a href="git-config.html">git-config(1)</a>). To cancel <code>diff.orderfile</code>, + use <code>-O/dev/null</code>. </p> </dd> <dt class="hdlist1"> @@ -1549,7 +1547,7 @@ </dt> <dd> <p> - Disable all output of the program. Implies <tt>--exit-code</tt>. + Disable all output of the program. Implies <code>--exit-code</code>. </p> </dd> <dt class="hdlist1"> @@ -1711,12 +1709,12 @@ <div class="paragraph"><p>An output line is formatted this way:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>in-place edit :100644 100644 bcd1234... 0123456... M file0 +<pre><code>in-place edit :100644 100644 bcd1234... 0123456... M file0 copy-edit :100644 100644 abcd123... 1234567... C68 file1 file2 rename-edit :100644 100644 abcd123... 1234567... R86 file1 file3 create :000000 100644 0000000... 1234567... A file4 delete :100644 000000 1234567... 0000000... D file5 -unmerged :000000 000000 0000000... 0000000... U file6</tt></pre> +unmerged :000000 000000 0000000... 0000000... U file6</code></pre> </div></div> <div class="paragraph"><p>That is, from the left to the right:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -1848,10 +1846,10 @@ <div class="paragraph"><p>Example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>:100644 100644 5be4a4...... 000000...... M file.c</tt></pre> +<pre><code>:100644 100644 5be4a4...... 000000...... M file.c</code></pre> </div></div> -<div class="paragraph"><p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters -in pathnames are represented as <tt>\t</tt>, <tt>\n</tt>, and <tt>\\</tt>, +<div class="paragraph"><p>When <code>-z</code> option is not used, TAB, LF, and backslash characters +in pathnames are represented as <code>\t</code>, <code>\n</code>, and <code>\\</code>, respectively.</p></div> </div> </div> @@ -1892,7 +1890,7 @@ <div class="paragraph"><p>Example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c</tt></pre> +<pre><code>::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c</code></pre> </div></div> <div class="paragraph"><p>Note that <em>combined diff</em> lists only files which were modified from all parents.</p></div> @@ -1916,12 +1914,12 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>diff --git a/file1 b/file2</tt></pre> +<pre><code>diff --git a/file1 b/file2</code></pre> </div></div> -<div class="paragraph"><p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is +<div class="paragraph"><p>The <code>a/</code> and <code>b/</code> filenames are the same unless rename/copy is involved. Especially, even for a creation or a deletion, -<tt>/dev/null</tt> is <em>not</em> used in place of the <tt>a/</tt> or <tt>b/</tt> filenames.</p></div> -<div class="paragraph"><p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the +<code>/dev/null</code> is <em>not</em> used in place of the <code>a/</code> or <code>b/</code> filenames.</p></div> +<div class="paragraph"><p>When rename/copy is involved, <code>file1</code> and <code>file2</code> show the name of the source file of the rename/copy and the name of the file that rename/copy produces, respectively.</p></div> </li> @@ -1931,7 +1929,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>old mode <mode> +<pre><code>old mode <mode> new mode <mode> deleted file mode <mode> new file mode <mode> @@ -1941,11 +1939,11 @@ rename to <path> similarity index <number> dissimilarity index <number> -index <hash>..<hash> <mode></tt></pre> +index <hash>..<hash> <mode></code></pre> </div></div> <div class="paragraph"><p>File modes are printed as 6-digit octal numbers including the file type and file permission bits.</p></div> -<div class="paragraph"><p>Path names in extended headers do not include the <tt>a/</tt> and <tt>b/</tt> prefixes.</p></div> +<div class="paragraph"><p>Path names in extended headers do not include the <code>a/</code> and <code>b/</code> prefixes.</p></div> <div class="paragraph"><p>The similarity index is the percentage of unchanged lines, and the dissimilarity index is the percentage of changed lines. It is a rounded down integer, followed by a percent sign. The @@ -1959,26 +1957,26 @@ <li> <p> TAB, LF, double quote and backslash characters in pathnames - are represented as <tt>\t</tt>, <tt>\n</tt>, <tt>\"</tt> and <tt>\\</tt>, respectively. + are represented as <code>\t</code>, <code>\n</code>, <code>\"</code> and <code>\\</code>, respectively. If there is need for such substitution then the whole pathname is put in double quotes. </p> </li> <li> <p> -All the <tt>file1</tt> files in the output refer to files before the - commit, and all the <tt>file2</tt> files refer to files after the commit. +All the <code>file1</code> files in the output refer to files before the + commit, and all the <code>file2</code> files refer to files after the commit. It is incorrect to apply each change to each file sequentially. For example, this patch will swap a and b: </p> <div class="literalblock"> <div class="content"> -<pre><tt>diff --git a/a b/b +<pre><code>diff --git a/a b/b rename from a rename to b diff --git a/b b/a rename from b -rename to a</tt></pre> +rename to a</code></pre> </div></div> </li> </ol></div> @@ -1987,7 +1985,7 @@ <div class="sect1"> <h2 id="_combined_diff_format">combined diff format</h2> <div class="sectionbody"> -<div class="paragraph"><p>Any diff-generating command can take the ‘-c` or <tt>--cc</tt> option to +<div class="paragraph"><p>Any diff-generating command can take the ‘-c` or <code>--cc</code> option to produce a <em>combined diff</em> when showing a merge. This is the default format when showing merges with <a href="git-diff.html">git-diff(1)</a> or <a href="git-show.html">git-show(1)</a>. Note also that you can give the `-m’ option to any @@ -1996,7 +1994,7 @@ <div class="paragraph"><p>A <em>combined diff</em> format looks like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>diff --combined describe.c +<pre><code>diff --combined describe.c index fabadb8,cc95eb0..4866510 --- a/describe.c +++ b/describe.c @@ -2022,7 +2020,7 @@ + if (!initialized) { initialized = 1; - for_each_ref(get_name);</tt></pre> + for_each_ref(get_name);</code></pre> </div></div> <div class="olist arabic"><ol class="arabic"> <li> @@ -2032,12 +2030,12 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>diff --combined file</tt></pre> +<pre><code>diff --combined file</code></pre> </div></div> <div class="paragraph"><p>or like this (when <em>--cc</em> option is used):</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>diff --cc file</tt></pre> +<pre><code>diff --cc file</code></pre> </div></div> </li> <li> @@ -2047,12 +2045,12 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>index <hash>,<hash>..<hash> +<pre><code>index <hash>,<hash>..<hash> mode <mode>,<mode>..<mode> new file mode <mode> -deleted file mode <mode>,<mode></tt></pre> +deleted file mode <mode>,<mode></code></pre> </div></div> -<div class="paragraph"><p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of +<div class="paragraph"><p>The <code>mode <mode>,<mode>..<mode></code> line appears only if at least one of the <mode> is different from the rest. Extended headers with information about detected contents movement (renames and copying detection) are designed to work with diff of two @@ -2064,49 +2062,49 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>--- a/file -+++ b/file</tt></pre> +<pre><code>--- a/file ++++ b/file</code></pre> </div></div> <div class="paragraph"><p>Similar to two-line header for traditional <em>unified</em> diff -format, <tt>/dev/null</tt> is used to signal created or deleted +format, <code>/dev/null</code> is used to signal created or deleted files.</p></div> </li> <li> <p> Chunk header format is modified to prevent people from - accidentally feeding it to <tt>patch -p1</tt>. Combined diff format + accidentally feeding it to <code>patch -p1</code>. Combined diff format was created for review of merge commit changes, and was not meant for apply. The change is similar to the change in the extended <em>index</em> header: </p> <div class="literalblock"> <div class="content"> -<pre><tt>@@@ <from-file-range> <from-file-range> <to-file-range> @@@</tt></pre> +<pre><code>@@@ <from-file-range> <from-file-range> <to-file-range> @@@</code></pre> </div></div> -<div class="paragraph"><p>There are (number of parents + 1) <tt>@</tt> characters in the chunk +<div class="paragraph"><p>There are (number of parents + 1) <code>@</code> characters in the chunk header for combined diff format.</p></div> </li> </ol></div> <div class="paragraph"><p>Unlike the traditional <em>unified</em> diff format, which shows two -files A and B with a single column that has <tt>-</tt> (minus — appears in A but removed in B), <tt>+</tt> (plus — missing in A but -added to B), or <tt>" "</tt> (space — unchanged) prefix, this format +files A and B with a single column that has <code>-</code> (minus — appears in A but removed in B), <code>+</code> (plus — missing in A but +added to B), or <code>" "</code> (space — unchanged) prefix, this format compares two or more files file1, file2,… with one file X, and shows how X differs from each of fileN. One column for each of fileN is prepended to the output line to note how X’s line is different from it.</p></div> -<div class="paragraph"><p>A <tt>-</tt> character in the column N means that the line appears in -fileN but it does not appear in the result. A <tt>+</tt> character +<div class="paragraph"><p>A <code>-</code> character in the column N means that the line appears in +fileN but it does not appear in the result. A <code>+</code> character in the column N means that the line appears in the result, and fileN does not have that line (in other words, the line was added, from the point of view of that parent).</p></div> <div class="paragraph"><p>In the above example output, the function signature was changed -from both files (hence two <tt>-</tt> removals from both file1 and -file2, plus <tt>++</tt> to mean one line that was added does not appear +from both files (hence two <code>-</code> removals from both file1 and +file2, plus <code>++</code> to mean one line that was added does not appear in either file1 or file2). Also eight other lines are the same -from file1 but do not appear in file2 (hence prefixed with <tt>+</tt>).</p></div> -<div class="paragraph"><p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a +from file1 but do not appear in file2 (hence prefixed with <code>+</code>).</p></div> +<div class="paragraph"><p>When shown by <code>git diff-tree -c</code>, it compares the parents of a merge commit with the merge result (i.e. file1..fileN are the -parents). When shown by <tt>git diff-files -c</tt>, it compares the +parents). When shown by <code>git diff-files -c</code>, it compares the two unresolved merge parents with the working tree file (i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka "their version").</p></div> @@ -2115,25 +2113,25 @@ <div class="sect1"> <h2 id="_other_diff_formats">other diff formats</h2> <div class="sectionbody"> -<div class="paragraph"><p>The <tt>--summary</tt> option describes newly added, deleted, renamed and -copied files. The <tt>--stat</tt> option adds diffstat(1) graph to the +<div class="paragraph"><p>The <code>--summary</code> option describes newly added, deleted, renamed and +copied files. The <code>--stat</code> option adds diffstat(1) graph to the output. These options can be combined with other options, such as -<tt>-p</tt>, and are meant for human consumption.</p></div> -<div class="paragraph"><p>When showing a change that involves a rename or a copy, <tt>--stat</tt> output +<code>-p</code>, and are meant for human consumption.</p></div> +<div class="paragraph"><p>When showing a change that involves a rename or a copy, <code>--stat</code> output formats the pathnames compactly by combining common prefix and suffix of -the pathnames. For example, a change that moves <tt>arch/i386/Makefile</tt> to -<tt>arch/x86/Makefile</tt> while modifying 4 lines will be shown like this:</p></div> +the pathnames. For example, a change that moves <code>arch/i386/Makefile</code> to +<code>arch/x86/Makefile</code> while modifying 4 lines will be shown like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>arch/{i386 => x86}/Makefile | 4 +--</tt></pre> +<pre><code>arch/{i386 => x86}/Makefile | 4 +--</code></pre> </div></div> -<div class="paragraph"><p>The <tt>--numstat</tt> option gives the diffstat(1) information but is designed -for easier machine consumption. An entry in <tt>--numstat</tt> output looks +<div class="paragraph"><p>The <code>--numstat</code> option gives the diffstat(1) information but is designed +for easier machine consumption. An entry in <code>--numstat</code> output looks like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>1 2 README -3 1 arch/{i386 => x86}/Makefile</tt></pre> +<pre><code>1 2 README +3 1 arch/{i386 => x86}/Makefile</code></pre> </div></div> <div class="paragraph"><p>That is, from left to right:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -2168,11 +2166,11 @@ </p> </li> </ol></div> -<div class="paragraph"><p>When <tt>-z</tt> output option is in effect, the output is formatted this way:</p></div> +<div class="paragraph"><p>When <code>-z</code> output option is in effect, the output is formatted this way:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>1 2 README NUL -3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL</tt></pre> +<pre><code>1 2 README NUL +3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL</code></pre> </div></div> <div class="paragraph"><p>That is:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -2222,11 +2220,11 @@ </p> </li> </ol></div> -<div class="paragraph"><p>The extra <tt>NUL</tt> before the preimage path in renamed case is to allow +<div class="paragraph"><p>The extra <code>NUL</code> before the preimage path in renamed case is to allow scripts that read the output to tell if the current record being read is a single-path record or a rename/copy record without reading ahead. -After reading added and deleted lines, reading up to <tt>NUL</tt> would yield -the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p></div> +After reading added and deleted lines, reading up to <code>NUL</code> would yield +the pathname, but if that is <code>NUL</code>, the record will show two paths.</p></div> </div> </div> <div class="sect1"> @@ -2244,8 +2242,8 @@ <div class="paragraph"><p>If <em>--cached</em> is specified, it allows you to ask:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>show me the differences between HEAD and the current index -contents (the ones I'd write using 'git write-tree')</tt></pre> +<pre><code>show me the differences between HEAD and the current index +contents (the ones I'd write using 'git write-tree')</code></pre> </div></div> <div class="paragraph"><p>For example, let’s say that you have worked on your working directory, updated some files in the index and are ready to commit. You want to see exactly @@ -2253,23 +2251,23 @@ object and compare it that way, and to do that, you just do</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git diff-index --cached HEAD</tt></pre> +<pre><code>git diff-index --cached HEAD</code></pre> </div></div> -<div class="paragraph"><p>Example: let’s say I had renamed <tt>commit.c</tt> to <tt>git-commit.c</tt>, and I had -done an <tt>update-index</tt> to make that effective in the index file. -<tt>git diff-files</tt> wouldn’t show anything at all, since the index file +<div class="paragraph"><p>Example: let’s say I had renamed <code>commit.c</code> to <code>git-commit.c</code>, and I had +done an <code>update-index</code> to make that effective in the index file. +<code>git diff-files</code> wouldn’t show anything at all, since the index file matches my working directory. But doing a <em>git diff-index</em> does:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>torvalds@ppc970:~/git> git diff-index --cached HEAD +<pre><code>torvalds@ppc970:~/git> git diff-index --cached HEAD -100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 commit.c -+100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 git-commit.c</tt></pre> ++100644 blob 4161aecc6700a2eb579e842af0b7f22b98443f74 git-commit.c</code></pre> </div></div> <div class="paragraph"><p>You can see easily that the above is a rename.</p></div> -<div class="paragraph"><p>In fact, <tt>git diff-index --cached</tt> <strong>should</strong> always be entirely equivalent to +<div class="paragraph"><p>In fact, <code>git diff-index --cached</code> <strong>should</strong> always be entirely equivalent to actually doing a <em>git write-tree</em> and comparing that. Except this one is much nicer for the case where you just want to check where you are.</p></div> -<div class="paragraph"><p>So doing a <tt>git diff-index --cached</tt> is basically very useful when you are +<div class="paragraph"><p>So doing a <code>git diff-index --cached</code> is basically very useful when you are asking yourself "what have I already marked for being committed, and what’s the difference to a previous tree".</p></div> </div> @@ -2283,23 +2281,23 @@ The non-cached version asks the question:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>show me the differences between HEAD and the currently checked out -tree - index contents _and_ files that aren't up-to-date</tt></pre> +<pre><code>show me the differences between HEAD and the currently checked out +tree - index contents _and_ files that aren't up-to-date</code></pre> </div></div> <div class="paragraph"><p>which is obviously a very useful question too, since that tells you what you <strong>could</strong> commit. Again, the output matches the <em>git diff-tree -r</em> output to a tee, but with a twist.</p></div> <div class="paragraph"><p>The twist is that if some file doesn’t match the index, we don’t have a backing store thing for it, and we use the magic "all-zero" sha1 to -show that. So let’s say that you have edited <tt>kernel/sched.c</tt>, but +show that. So let’s say that you have edited <code>kernel/sched.c</code>, but have not actually done a <em>git update-index</em> on it yet - there is no "object" associated with the new state, and you get:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>torvalds@ppc970:~/v2.6/linux> git diff-index --abbrev HEAD -:100644 100664 7476bb... 000000... kernel/sched.c</tt></pre> +<pre><code>torvalds@ppc970:~/v2.6/linux> git diff-index --abbrev HEAD +:100644 100664 7476bb... 000000... kernel/sched.c</code></pre> </div></div> -<div class="paragraph"><p>i.e., it shows that the tree has changed, and that <tt>kernel/sched.c</tt> has is +<div class="paragraph"><p>i.e., it shows that the tree has changed, and that <code>kernel/sched.c</code> has is not up-to-date and may contain new stuff. The all-zero sha1 means that to get the real diff, you need to look at the object in the working directory directly rather than do an object-to-object diff.</p></div> @@ -2310,7 +2308,7 @@ </td> <td class="content">As with other commands of this type, <em>git diff-index</em> does not actually look at the contents of the file at all. So maybe -<tt>kernel/sched.c</tt> hasn’t actually changed, and it’s just that you +<code>kernel/sched.c</code> hasn’t actually changed, and it’s just that you touched it. In either case, it’s a note that you need to <em>git update-index</em> it to make the index be in sync.</td> </tr></table>
diff --git a/git-diff.html b/git-diff.html index aa87aa3..7035dd4 100644 --- a/git-diff.html +++ b/git-diff.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-diff(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -784,7 +782,7 @@ <dd> <p> This form is to compare the given two paths on the - filesystem. You can omit the <tt>--no-index</tt> option when + filesystem. You can omit the <code>--no-index</code> option when running the command in a working tree controlled by Git and at least one of the paths points outside the working tree, or when running the command outside a working tree @@ -899,8 +897,8 @@ </dt> <dd> <p> - Suppress diff output. Useful for commands like <tt>git show</tt> that - show the patch by default, or to cancel the effect of <tt>--patch</tt>. + Suppress diff output. Useful for commands like <code>git show</code> that + show the patch by default, or to cancel the effect of <code>--patch</code>. </p> </dd> <dt class="hdlist1"> @@ -913,7 +911,7 @@ <p> Generate diffs with <n> lines of context instead of the usual three. - Implies <tt>-p</tt>. + Implies <code>-p</code>. </p> </dd> <dt class="hdlist1"> @@ -930,7 +928,7 @@ </dt> <dd> <p> - Synonym for <tt>-p --raw</tt>. + Synonym for <code>-p --raw</code>. </p> </dd> <dt class="hdlist1"> @@ -969,7 +967,7 @@ <div class="content"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>default</tt>, <tt>myers</tt> +<code>default</code>, <code>myers</code> </dt> <dd> <p> @@ -977,7 +975,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>minimal</tt> +<code>minimal</code> </dt> <dd> <p> @@ -986,7 +984,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>patience</tt> +<code>patience</code> </dt> <dd> <p> @@ -994,7 +992,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>histogram</tt> +<code>histogram</code> </dt> <dd> <p> @@ -1006,7 +1004,7 @@ </div></div> <div class="paragraph"><p>For instance, if you configured diff.algorithm variable to a non-default value and want to use the default one, then you -have to use <tt>--diff-algorithm=default</tt> option.</p></div> +have to use <code>--diff-algorithm=default</code> option.</p></div> </dd> <dt class="hdlist1"> --stat[=<width>[,<name-width>[,<count>]]] @@ -1017,29 +1015,29 @@ will be used for the filename part, and the rest for the graph part. Maximum width defaults to terminal width, or 80 columns if not connected to a terminal, and can be overridden by - <tt><width></tt>. The width of the filename part can be limited by - giving another width <tt><name-width></tt> after a comma. The width + <code><width></code>. The width of the filename part can be limited by + giving another width <code><name-width></code> after a comma. The width of the graph part can be limited by using - <tt>--stat-graph-width=<width></tt> (affects all commands generating - a stat graph) or by setting <tt>diff.statGraphWidth=<width></tt> - (does not affect <tt>git format-patch</tt>). - By giving a third parameter <tt><count></tt>, you can limit the - output to the first <tt><count></tt> lines, followed by <tt>...</tt> if + <code>--stat-graph-width=<width></code> (affects all commands generating + a stat graph) or by setting <code>diff.statGraphWidth=<width></code> + (does not affect <code>git format-patch</code>). + By giving a third parameter <code><count></code>, you can limit the + output to the first <code><count></code> lines, followed by <code>...</code> if there are more. </p> -<div class="paragraph"><p>These parameters can also be set individually with <tt>--stat-width=<width></tt>, -<tt>--stat-name-width=<name-width></tt> and <tt>--stat-count=<count></tt>.</p></div> +<div class="paragraph"><p>These parameters can also be set individually with <code>--stat-width=<width></code>, +<code>--stat-name-width=<name-width></code> and <code>--stat-count=<count></code>.</p></div> </dd> <dt class="hdlist1"> --numstat </dt> <dd> <p> - Similar to <tt>--stat</tt>, but shows number of added and + Similar to <code>--stat</code>, but shows number of added and deleted lines in decimal notation and pathname without abbreviation, to make it more machine friendly. For - binary files, outputs two <tt>-</tt> instead of saying - <tt>0 0</tt>. + binary files, outputs two <code>-</code> instead of saying + <code>0 0</code>. </p> </dd> <dt class="hdlist1"> @@ -1047,7 +1045,7 @@ </dt> <dd> <p> - Output only the last line of the <tt>--stat</tt> format containing total + Output only the last line of the <code>--stat</code> format containing total number of modified files, as well as number of added and deleted lines. </p> @@ -1058,9 +1056,9 @@ <dd> <p> Output the distribution of relative amount of changes for each - sub-directory. The behavior of <tt>--dirstat</tt> can be customized by + sub-directory. The behavior of <code>--dirstat</code> can be customized by passing it a comma separated list of parameters. - The defaults are controlled by the <tt>diff.dirstat</tt> configuration + The defaults are controlled by the <code>diff.dirstat</code> configuration variable (see <a href="git-config.html">git-config(1)</a>). The following parameters are available: </p> @@ -1068,7 +1066,7 @@ <div class="content"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>changes</tt> +<code>changes</code> </dt> <dd> <p> @@ -1080,39 +1078,39 @@ </p> </dd> <dt class="hdlist1"> -<tt>lines</tt> +<code>lines</code> </dt> <dd> <p> Compute the dirstat numbers by doing the regular line-based diff analysis, and summing the removed/added line counts. (For binary files, count 64-byte chunks instead, since binary files have no - natural concept of lines). This is a more expensive <tt>--dirstat</tt> - behavior than the <tt>changes</tt> behavior, but it does count rearranged + natural concept of lines). This is a more expensive <code>--dirstat</code> + behavior than the <code>changes</code> behavior, but it does count rearranged lines within a file as much as other changes. The resulting output - is consistent with what you get from the other <tt>--*stat</tt> options. + is consistent with what you get from the other <code>--*stat</code> options. </p> </dd> <dt class="hdlist1"> -<tt>files</tt> +<code>files</code> </dt> <dd> <p> Compute the dirstat numbers by counting the number of files changed. Each changed file counts equally in the dirstat analysis. This is - the computationally cheapest <tt>--dirstat</tt> behavior, since it does + the computationally cheapest <code>--dirstat</code> behavior, since it does not have to look at the file contents at all. </p> </dd> <dt class="hdlist1"> -<tt>cumulative</tt> +<code>cumulative</code> </dt> <dd> <p> Count changes in a child directory for the parent directory as well. - Note that when using <tt>cumulative</tt>, the sum of the percentages + Note that when using <code>cumulative</code>, the sum of the percentages reported may exceed 100%. The default (non-cumulative) behavior can - be specified with the <tt>noncumulative</tt> parameter. + be specified with the <code>noncumulative</code> parameter. </p> </dd> <dt class="hdlist1"> @@ -1130,7 +1128,7 @@ <div class="paragraph"><p>Example: The following will count changed files, while ignoring directories with less than 10% of the total amount of changed files, and accumulating child directory counts in the parent directories: -<tt>--dirstat=files,10,cumulative</tt>.</p></div> +<code>--dirstat=files,10,cumulative</code>.</p></div> </dd> <dt class="hdlist1"> --summary @@ -1146,7 +1144,7 @@ </dt> <dd> <p> - Synonym for <tt>-p --stat</tt>. + Synonym for <code>-p --stat</code>. </p> </dd> <dt class="hdlist1"> @@ -1154,11 +1152,11 @@ </dt> <dd> <p> - When <tt>--raw</tt>, <tt>--numstat</tt>, <tt>--name-only</tt> or <tt>--name-status</tt> has been + When <code>--raw</code>, <code>--numstat</code>, <code>--name-only</code> or <code>--name-status</code> has been given, do not munge pathnames and use NULs as output field terminators. </p> <div class="paragraph"><p>Without this option, each pathname output will have TAB, LF, double quotes, -and backslash characters replaced with <tt>\t</tt>, <tt>\n</tt>, <tt>\"</tt>, and <tt>\\</tt>, +and backslash characters replaced with <code>\t</code>, <code>\n</code>, <code>\"</code>, and <code>\\</code>, respectively, and the pathname will be enclosed in double quotes if any of those replacements occurred.</p></div> </dd> @@ -1176,7 +1174,7 @@ <dd> <p> Show only names and status of changed files. See the description - of the <tt>--diff-filter</tt> option on what the status letters mean. + of the <code>--diff-filter</code> option on what the status letters mean. </p> </dd> <dt class="hdlist1"> @@ -1184,13 +1182,13 @@ </dt> <dd> <p> - Specify how differences in submodules are shown. When <tt>--submodule</tt> - or <tt>--submodule=log</tt> is given, the <em>log</em> format is used. This format lists - the commits in the range like <a href="git-submodule.html">git-submodule(1)</a> <tt>summary</tt> does. - Omitting the <tt>--submodule</tt> option or specifying <tt>--submodule=short</tt>, + Specify how differences in submodules are shown. When <code>--submodule</code> + or <code>--submodule=log</code> is given, the <em>log</em> format is used. This format lists + the commits in the range like <a href="git-submodule.html">git-submodule(1)</a> <code>summary</code> does. + Omitting the <code>--submodule</code> option or specifying <code>--submodule=short</code>, uses the <em>short</em> format. This format just shows the names of the commits at the beginning and end of the range. Can be tweaked via the - <tt>diff.submodule</tt> configuration variable. + <code>diff.submodule</code> configuration variable. </p> </dd> <dt class="hdlist1"> @@ -1199,9 +1197,9 @@ <dd> <p> Show colored diff. - <tt>--color</tt> (i.e. without <em>=<when></em>) is the same as <tt>--color=always</tt>. - <em><when></em> can be one of <tt>always</tt>, <tt>never</tt>, or <tt>auto</tt>. - It can be changed by the <tt>color.ui</tt> and <tt>color.diff</tt> + <code>--color</code> (i.e. without <em>=<when></em>) is the same as <code>--color=always</code>. + <em><when></em> can be one of <code>always</code>, <code>never</code>, or <code>auto</code>. + It can be changed by the <code>color.ui</code> and <code>color.diff</code> configuration settings. </p> </dd> @@ -1212,7 +1210,7 @@ <p> Turn off colored diff. This can be used to override configuration settings. - It is the same as <tt>--color=never</tt>. + It is the same as <code>--color=never</code>. </p> </dd> <dt class="hdlist1"> @@ -1222,7 +1220,7 @@ <p> Show a word diff, using the <mode> to delimit changed words. By default, words are delimited by whitespace; see - <tt>--word-diff-regex</tt> below. The <mode> defaults to <em>plain</em>, and + <code>--word-diff-regex</code> below. The <mode> defaults to <em>plain</em>, and must be one of: </p> <div class="openblock"> @@ -1233,7 +1231,7 @@ </dt> <dd> <p> - Highlight changed words using only colors. Implies <tt>--color</tt>. + Highlight changed words using only colors. Implies <code>--color</code>. </p> </dd> <dt class="hdlist1"> @@ -1241,7 +1239,7 @@ </dt> <dd> <p> - Show words as <tt>[-removed-]</tt> and <tt>{+added+}</tt>. Makes no + Show words as <code>[-removed-]</code> and <code>{+added+}</code>. Makes no attempts to escape the delimiters if they appear in the input, so the output may be ambiguous. </p> @@ -1253,10 +1251,10 @@ <p> Use a special line-based format intended for script consumption. Added/removed/unchanged runs are printed in the - usual unified diff format, starting with a <tt>+</tt>/<tt>-</tt>/` ` + usual unified diff format, starting with a <code>+</code>/<code>-</code>/` ` character at the beginning of the line and extending to the end of the line. Newlines in the input are represented by a - tilde <tt>~</tt> on a line of its own. + tilde <code>~</code> on a line of its own. </p> </dd> <dt class="hdlist1"> @@ -1279,12 +1277,12 @@ <p> Use <regex> to decide what a word is, instead of considering runs of non-whitespace to be a word. Also implies - <tt>--word-diff</tt> unless it was already enabled. + <code>--word-diff</code> unless it was already enabled. </p> <div class="paragraph"><p>Every non-overlapping match of the <regex> is considered a word. Anything between these matches is considered whitespace and ignored(!) for the purposes of finding -differences. You may want to append <tt>|[^[:space:]]</tt> to your regular +differences. You may want to append <code>|[^[:space:]]</code> to your regular expression to make sure that it matches all non-whitespace characters. A match that contains a newline is silently truncated(!) at the newline.</p></div> @@ -1298,8 +1296,8 @@ </dt> <dd> <p> - Equivalent to <tt>--word-diff=color</tt> plus (if a regex was - specified) <tt>--word-diff-regex=<regex></tt>. + Equivalent to <code>--word-diff=color</code> plus (if a regex was + specified) <code>--word-diff-regex=<regex></code>. </p> </dd> <dt class="hdlist1"> @@ -1317,7 +1315,7 @@ <dd> <p> Warn if changes introduce whitespace errors. What are - considered whitespace errors is controlled by <tt>core.whitespace</tt> + considered whitespace errors is controlled by <code>core.whitespace</code> configuration. By default, trailing whitespaces (including lines that solely consist of whitespaces) and a space character that is immediately followed by a tab character inside the @@ -1341,8 +1339,8 @@ </dt> <dd> <p> - In addition to <tt>--full-index</tt>, output a binary diff that - can be applied with <tt>git-apply</tt>. + In addition to <code>--full-index</code>, output a binary diff that + can be applied with <code>git-apply</code>. </p> </dd> <dt class="hdlist1"> @@ -1353,9 +1351,9 @@ Instead of showing the full 40-byte hexadecimal object name in diff-raw format output and diff-tree header lines, show only a partial prefix. This is - independent of the <tt>--full-index</tt> option above, which controls + independent of the <code>--full-index</code> option above, which controls the diff-patch output format. Non default number of - digits can be specified with <tt>--abbrev=<n></tt>. + digits can be specified with <code>--abbrev=<n></code>. </p> </dd> <dt class="hdlist1"> @@ -1373,15 +1371,15 @@ not as a series of deletion and insertion mixed together with a very few lines that happen to match textually as the context, but as a single deletion of everything old followed by a single insertion of -everything new, and the number <tt>m</tt> controls this aspect of the -B -option (defaults to 60%). <tt>-B/70%</tt> specifies that less than 30% of the +everything new, and the number <code>m</code> controls this aspect of the -B +option (defaults to 60%). <code>-B/70%</code> specifies that less than 30% of the original should remain in the result for Git to consider it a total rewrite (i.e. otherwise the resulting patch will be a series of deletion and insertion mixed together with context lines).</p></div> <div class="paragraph"><p>When used with -M, a totally-rewritten file is also considered as the source of a rename (usually -M only considers a file that disappeared -as the source of a rename), and the number <tt>n</tt> controls this aspect of -the -B option (defaults to 50%). <tt>-B20%</tt> specifies that a change with +as the source of a rename), and the number <code>n</code> controls this aspect of +the -B option (defaults to 50%). <code>-B20%</code> specifies that a change with addition and deletion compared to 20% or more of the file’s size are eligible for being picked up as a possible source of a rename to another file.</p></div> @@ -1395,15 +1393,15 @@ <dd> <p> Detect renames. - If <tt>n</tt> is specified, it is a threshold on the similarity + If <code>n</code> is specified, it is a threshold on the similarity index (i.e. amount of addition/deletions compared to the - file’s size). For example, <tt>-M90%</tt> means Git should consider a + file’s size). For example, <code>-M90%</code> means Git should consider a delete/add pair to be a rename if more than 90% of the file - hasn’t changed. Without a <tt>%</tt> sign, the number is to be read as - a fraction, with a decimal point before it. I.e., <tt>-M5</tt> becomes - 0.5, and is thus the same as <tt>-M50%</tt>. Similarly, <tt>-M05</tt> is - the same as <tt>-M5%</tt>. To limit detection to exact renames, use - <tt>-M100%</tt>. The default similarity index is 50%. + hasn’t changed. Without a <code>%</code> sign, the number is to be read as + a fraction, with a decimal point before it. I.e., <code>-M5</code> becomes + 0.5, and is thus the same as <code>-M50%</code>. Similarly, <code>-M05</code> is + the same as <code>-M5%</code>. To limit detection to exact renames, use + <code>-M100%</code>. The default similarity index is 50%. </p> </dd> <dt class="hdlist1"> @@ -1414,8 +1412,8 @@ </dt> <dd> <p> - Detect copies as well as renames. See also <tt>--find-copies-harder</tt>. - If <tt>n</tt> is specified, it has the same meaning as for <tt>-M<n></tt>. + Detect copies as well as renames. See also <code>--find-copies-harder</code>. + If <code>n</code> is specified, it has the same meaning as for <code>-M<n></code>. </p> </dd> <dt class="hdlist1"> @@ -1423,13 +1421,13 @@ </dt> <dd> <p> - For performance reasons, by default, <tt>-C</tt> option finds copies only + For performance reasons, by default, <code>-C</code> option finds copies only if the original file of the copy was modified in the same changeset. This flag makes the command inspect unmodified files as candidates for the source of copy. This is a very expensive operation for large projects, so use it with caution. Giving more than one - <tt>-C</tt> option has the same effect. + <code>-C</code> option has the same effect. </p> </dd> <dt class="hdlist1"> @@ -1441,14 +1439,14 @@ <dd> <p> Omit the preimage for deletes, i.e. print only the header but not - the diff between the preimage and <tt>/dev/null</tt>. The resulting patch - is not meant to be applied with <tt>patch</tt> or <tt>git apply</tt>; this is + the diff between the preimage and <code>/dev/null</code>. The resulting patch + is not meant to be applied with <code>patch</code> or <code>git apply</code>; this is solely for people who want to just concentrate on reviewing the text after the change. In addition, the output obviously lack enough information to apply such a patch in reverse, even manually, hence the name of the option. </p> -<div class="paragraph"><p>When used together with <tt>-B</tt>, omit also the preimage in the deletion part +<div class="paragraph"><p>When used together with <code>-B</code>, omit also the preimage in the deletion part of a delete/create pair.</p></div> </dd> <dt class="hdlist1"> @@ -1456,7 +1454,7 @@ </dt> <dd> <p> - The <tt>-M</tt> and <tt>-C</tt> options require O(n^2) processing time where n + The <code>-M</code> and <code>-C</code> options require O(n^2) processing time where n is the number of potential rename/copy targets. This option prevents rename/copy detection from running if the number of rename/copy targets exceeds the specified @@ -1468,13 +1466,13 @@ </dt> <dd> <p> - Select only files that are Added (<tt>A</tt>), Copied (<tt>C</tt>), - Deleted (<tt>D</tt>), Modified (<tt>M</tt>), Renamed (<tt>R</tt>), have their - type (i.e. regular file, symlink, submodule, …) changed (<tt>T</tt>), - are Unmerged (<tt>U</tt>), are - Unknown (<tt>X</tt>), or have had their pairing Broken (<tt>B</tt>). + Select only files that are Added (<code>A</code>), Copied (<code>C</code>), + Deleted (<code>D</code>), Modified (<code>M</code>), Renamed (<code>R</code>), have their + type (i.e. regular file, symlink, submodule, …) changed (<code>T</code>), + are Unmerged (<code>U</code>), are + Unknown (<code>X</code>), or have had their pairing Broken (<code>B</code>). Any combination of the filter characters (including none) can be used. - When <tt>*</tt> (All-or-none) is added to the combination, all + When <code>*</code> (All-or-none) is added to the combination, all paths are selected if there is any file that matches other criteria in the comparison; if there is no file that matches other criteria, nothing is selected. @@ -1492,7 +1490,7 @@ <div class="paragraph"><p>It is useful when you’re looking for an exact block of code (like a struct), and want to know the history of that block since it first came into being: use the feature iteratively to feed the interesting -block in the preimage back into <tt>-S</tt>, and keep going until you get the +block in the preimage back into <code>-S</code>, and keep going until you get the very first version of the block.</p></div> </dd> <dt class="hdlist1"> @@ -1503,17 +1501,17 @@ Look for differences whose patch text contains added/removed lines that match <regex>. </p> -<div class="paragraph"><p>To illustrate the difference between <tt>-S<regex> --pickaxe-regex</tt> and -<tt>-G<regex></tt>, consider a commit with the following diff in the same +<div class="paragraph"><p>To illustrate the difference between <code>-S<regex> --pickaxe-regex</code> and +<code>-G<regex></code>, consider a commit with the following diff in the same file:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>+ return !regexec(regexp, two->ptr, 1, &regmatch, 0); +<pre><code>+ return !regexec(regexp, two->ptr, 1, &regmatch, 0); ... -- hit = !regexec(regexp, mf2.ptr, 1, &regmatch, 0);</tt></pre> +- hit = !regexec(regexp, mf2.ptr, 1, &regmatch, 0);</code></pre> </div></div> -<div class="paragraph"><p>While <tt>git log -G"regexec\(regexp"</tt> will show this commit, <tt>git log --S"regexec\(regexp" --pickaxe-regex</tt> will not (because the number of +<div class="paragraph"><p>While <code>git log -G"regexec\(regexp"</code> will show this commit, <code>git log +-S"regexec\(regexp" --pickaxe-regex</code> will not (because the number of occurrences of that string did not change).</p></div> <div class="paragraph"><p>See the <em>pickaxe</em> entry in <a href="gitdiffcore.html">gitdiffcore(7)</a> for more information.</p></div> @@ -1523,7 +1521,7 @@ </dt> <dd> <p> - When <tt>-S</tt> or <tt>-G</tt> finds a change, show all the changes in that + When <code>-S</code> or <code>-G</code> finds a change, show all the changes in that changeset, not just the files that contain the change in <string>. </p> @@ -1533,7 +1531,7 @@ </dt> <dd> <p> - Treat the <string> given to <tt>-S</tt> as an extended POSIX regular + Treat the <string> given to <code>-S</code> as an extended POSIX regular expression to match. </p> </dd> @@ -1544,9 +1542,9 @@ <p> Output the patch in the order specified in the <orderfile>, which has one shell glob pattern per line. - This overrides the <tt>diff.orderfile</tt> configuration variable - (see <a href="git-config.html">git-config(1)</a>). To cancel <tt>diff.orderfile</tt>, - use <tt>-O/dev/null</tt>. + This overrides the <code>diff.orderfile</code> configuration variable + (see <a href="git-config.html">git-config(1)</a>). To cancel <code>diff.orderfile</code>, + use <code>-O/dev/null</code>. </p> </dd> <dt class="hdlist1"> @@ -1659,7 +1657,7 @@ </dt> <dd> <p> - Disable all output of the program. Implies <tt>--exit-code</tt>. + Disable all output of the program. Implies <code>--exit-code</code>. </p> </dd> <dt class="hdlist1"> @@ -1804,12 +1802,12 @@ <div class="paragraph"><p>An output line is formatted this way:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>in-place edit :100644 100644 bcd1234... 0123456... M file0 +<pre><code>in-place edit :100644 100644 bcd1234... 0123456... M file0 copy-edit :100644 100644 abcd123... 1234567... C68 file1 file2 rename-edit :100644 100644 abcd123... 1234567... R86 file1 file3 create :000000 100644 0000000... 1234567... A file4 delete :100644 000000 1234567... 0000000... D file5 -unmerged :000000 000000 0000000... 0000000... U file6</tt></pre> +unmerged :000000 000000 0000000... 0000000... U file6</code></pre> </div></div> <div class="paragraph"><p>That is, from the left to the right:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -1941,10 +1939,10 @@ <div class="paragraph"><p>Example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>:100644 100644 5be4a4...... 000000...... M file.c</tt></pre> +<pre><code>:100644 100644 5be4a4...... 000000...... M file.c</code></pre> </div></div> -<div class="paragraph"><p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters -in pathnames are represented as <tt>\t</tt>, <tt>\n</tt>, and <tt>\\</tt>, +<div class="paragraph"><p>When <code>-z</code> option is not used, TAB, LF, and backslash characters +in pathnames are represented as <code>\t</code>, <code>\n</code>, and <code>\\</code>, respectively.</p></div> </div> </div> @@ -1985,7 +1983,7 @@ <div class="paragraph"><p>Example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c</tt></pre> +<pre><code>::100644 100644 100644 fabadb8... cc95eb0... 4866510... MM describe.c</code></pre> </div></div> <div class="paragraph"><p>Note that <em>combined diff</em> lists only files which were modified from all parents.</p></div> @@ -2009,12 +2007,12 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>diff --git a/file1 b/file2</tt></pre> +<pre><code>diff --git a/file1 b/file2</code></pre> </div></div> -<div class="paragraph"><p>The <tt>a/</tt> and <tt>b/</tt> filenames are the same unless rename/copy is +<div class="paragraph"><p>The <code>a/</code> and <code>b/</code> filenames are the same unless rename/copy is involved. Especially, even for a creation or a deletion, -<tt>/dev/null</tt> is <em>not</em> used in place of the <tt>a/</tt> or <tt>b/</tt> filenames.</p></div> -<div class="paragraph"><p>When rename/copy is involved, <tt>file1</tt> and <tt>file2</tt> show the +<code>/dev/null</code> is <em>not</em> used in place of the <code>a/</code> or <code>b/</code> filenames.</p></div> +<div class="paragraph"><p>When rename/copy is involved, <code>file1</code> and <code>file2</code> show the name of the source file of the rename/copy and the name of the file that rename/copy produces, respectively.</p></div> </li> @@ -2024,7 +2022,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>old mode <mode> +<pre><code>old mode <mode> new mode <mode> deleted file mode <mode> new file mode <mode> @@ -2034,11 +2032,11 @@ rename to <path> similarity index <number> dissimilarity index <number> -index <hash>..<hash> <mode></tt></pre> +index <hash>..<hash> <mode></code></pre> </div></div> <div class="paragraph"><p>File modes are printed as 6-digit octal numbers including the file type and file permission bits.</p></div> -<div class="paragraph"><p>Path names in extended headers do not include the <tt>a/</tt> and <tt>b/</tt> prefixes.</p></div> +<div class="paragraph"><p>Path names in extended headers do not include the <code>a/</code> and <code>b/</code> prefixes.</p></div> <div class="paragraph"><p>The similarity index is the percentage of unchanged lines, and the dissimilarity index is the percentage of changed lines. It is a rounded down integer, followed by a percent sign. The @@ -2052,26 +2050,26 @@ <li> <p> TAB, LF, double quote and backslash characters in pathnames - are represented as <tt>\t</tt>, <tt>\n</tt>, <tt>\"</tt> and <tt>\\</tt>, respectively. + are represented as <code>\t</code>, <code>\n</code>, <code>\"</code> and <code>\\</code>, respectively. If there is need for such substitution then the whole pathname is put in double quotes. </p> </li> <li> <p> -All the <tt>file1</tt> files in the output refer to files before the - commit, and all the <tt>file2</tt> files refer to files after the commit. +All the <code>file1</code> files in the output refer to files before the + commit, and all the <code>file2</code> files refer to files after the commit. It is incorrect to apply each change to each file sequentially. For example, this patch will swap a and b: </p> <div class="literalblock"> <div class="content"> -<pre><tt>diff --git a/a b/b +<pre><code>diff --git a/a b/b rename from a rename to b diff --git a/b b/a rename from b -rename to a</tt></pre> +rename to a</code></pre> </div></div> </li> </ol></div> @@ -2080,7 +2078,7 @@ <div class="sect1"> <h2 id="_combined_diff_format">combined diff format</h2> <div class="sectionbody"> -<div class="paragraph"><p>Any diff-generating command can take the ‘-c` or <tt>--cc</tt> option to +<div class="paragraph"><p>Any diff-generating command can take the ‘-c` or <code>--cc</code> option to produce a <em>combined diff</em> when showing a merge. This is the default format when showing merges with <a href="git-diff.html">git-diff(1)</a> or <a href="git-show.html">git-show(1)</a>. Note also that you can give the `-m’ option to any @@ -2089,7 +2087,7 @@ <div class="paragraph"><p>A <em>combined diff</em> format looks like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>diff --combined describe.c +<pre><code>diff --combined describe.c index fabadb8,cc95eb0..4866510 --- a/describe.c +++ b/describe.c @@ -2115,7 +2113,7 @@ + if (!initialized) { initialized = 1; - for_each_ref(get_name);</tt></pre> + for_each_ref(get_name);</code></pre> </div></div> <div class="olist arabic"><ol class="arabic"> <li> @@ -2125,12 +2123,12 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>diff --combined file</tt></pre> +<pre><code>diff --combined file</code></pre> </div></div> <div class="paragraph"><p>or like this (when <em>--cc</em> option is used):</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>diff --cc file</tt></pre> +<pre><code>diff --cc file</code></pre> </div></div> </li> <li> @@ -2140,12 +2138,12 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>index <hash>,<hash>..<hash> +<pre><code>index <hash>,<hash>..<hash> mode <mode>,<mode>..<mode> new file mode <mode> -deleted file mode <mode>,<mode></tt></pre> +deleted file mode <mode>,<mode></code></pre> </div></div> -<div class="paragraph"><p>The <tt>mode <mode>,<mode>..<mode></tt> line appears only if at least one of +<div class="paragraph"><p>The <code>mode <mode>,<mode>..<mode></code> line appears only if at least one of the <mode> is different from the rest. Extended headers with information about detected contents movement (renames and copying detection) are designed to work with diff of two @@ -2157,49 +2155,49 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>--- a/file -+++ b/file</tt></pre> +<pre><code>--- a/file ++++ b/file</code></pre> </div></div> <div class="paragraph"><p>Similar to two-line header for traditional <em>unified</em> diff -format, <tt>/dev/null</tt> is used to signal created or deleted +format, <code>/dev/null</code> is used to signal created or deleted files.</p></div> </li> <li> <p> Chunk header format is modified to prevent people from - accidentally feeding it to <tt>patch -p1</tt>. Combined diff format + accidentally feeding it to <code>patch -p1</code>. Combined diff format was created for review of merge commit changes, and was not meant for apply. The change is similar to the change in the extended <em>index</em> header: </p> <div class="literalblock"> <div class="content"> -<pre><tt>@@@ <from-file-range> <from-file-range> <to-file-range> @@@</tt></pre> +<pre><code>@@@ <from-file-range> <from-file-range> <to-file-range> @@@</code></pre> </div></div> -<div class="paragraph"><p>There are (number of parents + 1) <tt>@</tt> characters in the chunk +<div class="paragraph"><p>There are (number of parents + 1) <code>@</code> characters in the chunk header for combined diff format.</p></div> </li> </ol></div> <div class="paragraph"><p>Unlike the traditional <em>unified</em> diff format, which shows two -files A and B with a single column that has <tt>-</tt> (minus — appears in A but removed in B), <tt>+</tt> (plus — missing in A but -added to B), or <tt>" "</tt> (space — unchanged) prefix, this format +files A and B with a single column that has <code>-</code> (minus — appears in A but removed in B), <code>+</code> (plus — missing in A but +added to B), or <code>" "</code> (space — unchanged) prefix, this format compares two or more files file1, file2,… with one file X, and shows how X differs from each of fileN. One column for each of fileN is prepended to the output line to note how X’s line is different from it.</p></div> -<div class="paragraph"><p>A <tt>-</tt> character in the column N means that the line appears in -fileN but it does not appear in the result. A <tt>+</tt> character +<div class="paragraph"><p>A <code>-</code> character in the column N means that the line appears in +fileN but it does not appear in the result. A <code>+</code> character in the column N means that the line appears in the result, and fileN does not have that line (in other words, the line was added, from the point of view of that parent).</p></div> <div class="paragraph"><p>In the above example output, the function signature was changed -from both files (hence two <tt>-</tt> removals from both file1 and -file2, plus <tt>++</tt> to mean one line that was added does not appear +from both files (hence two <code>-</code> removals from both file1 and +file2, plus <code>++</code> to mean one line that was added does not appear in either file1 or file2). Also eight other lines are the same -from file1 but do not appear in file2 (hence prefixed with <tt>+</tt>).</p></div> -<div class="paragraph"><p>When shown by <tt>git diff-tree -c</tt>, it compares the parents of a +from file1 but do not appear in file2 (hence prefixed with <code>+</code>).</p></div> +<div class="paragraph"><p>When shown by <code>git diff-tree -c</code>, it compares the parents of a merge commit with the merge result (i.e. file1..fileN are the -parents). When shown by <tt>git diff-files -c</tt>, it compares the +parents). When shown by <code>git diff-files -c</code>, it compares the two unresolved merge parents with the working tree file (i.e. file1 is stage 2 aka "our version", file2 is stage 3 aka "their version").</p></div> @@ -2208,25 +2206,25 @@ <div class="sect1"> <h2 id="_other_diff_formats">other diff formats</h2> <div class="sectionbody"> -<div class="paragraph"><p>The <tt>--summary</tt> option describes newly added, deleted, renamed and -copied files. The <tt>--stat</tt> option adds diffstat(1) graph to the +<div class="paragraph"><p>The <code>--summary</code> option describes newly added, deleted, renamed and +copied files. The <code>--stat</code> option adds diffstat(1) graph to the output. These options can be combined with other options, such as -<tt>-p</tt>, and are meant for human consumption.</p></div> -<div class="paragraph"><p>When showing a change that involves a rename or a copy, <tt>--stat</tt> output +<code>-p</code>, and are meant for human consumption.</p></div> +<div class="paragraph"><p>When showing a change that involves a rename or a copy, <code>--stat</code> output formats the pathnames compactly by combining common prefix and suffix of -the pathnames. For example, a change that moves <tt>arch/i386/Makefile</tt> to -<tt>arch/x86/Makefile</tt> while modifying 4 lines will be shown like this:</p></div> +the pathnames. For example, a change that moves <code>arch/i386/Makefile</code> to +<code>arch/x86/Makefile</code> while modifying 4 lines will be shown like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>arch/{i386 => x86}/Makefile | 4 +--</tt></pre> +<pre><code>arch/{i386 => x86}/Makefile | 4 +--</code></pre> </div></div> -<div class="paragraph"><p>The <tt>--numstat</tt> option gives the diffstat(1) information but is designed -for easier machine consumption. An entry in <tt>--numstat</tt> output looks +<div class="paragraph"><p>The <code>--numstat</code> option gives the diffstat(1) information but is designed +for easier machine consumption. An entry in <code>--numstat</code> output looks like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>1 2 README -3 1 arch/{i386 => x86}/Makefile</tt></pre> +<pre><code>1 2 README +3 1 arch/{i386 => x86}/Makefile</code></pre> </div></div> <div class="paragraph"><p>That is, from left to right:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -2261,11 +2259,11 @@ </p> </li> </ol></div> -<div class="paragraph"><p>When <tt>-z</tt> output option is in effect, the output is formatted this way:</p></div> +<div class="paragraph"><p>When <code>-z</code> output option is in effect, the output is formatted this way:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>1 2 README NUL -3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL</tt></pre> +<pre><code>1 2 README NUL +3 1 NUL arch/i386/Makefile NUL arch/x86/Makefile NUL</code></pre> </div></div> <div class="paragraph"><p>That is:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -2315,11 +2313,11 @@ </p> </li> </ol></div> -<div class="paragraph"><p>The extra <tt>NUL</tt> before the preimage path in renamed case is to allow +<div class="paragraph"><p>The extra <code>NUL</code> before the preimage path in renamed case is to allow scripts that read the output to tell if the current record being read is a single-path record or a rename/copy record without reading ahead. -After reading added and deleted lines, reading up to <tt>NUL</tt> would yield -the pathname, but if that is <tt>NUL</tt>, the record will show two paths.</p></div> +After reading added and deleted lines, reading up to <code>NUL</code> would yield +the pathname, but if that is <code>NUL</code>, the record will show two paths.</p></div> </div> </div> <div class="sect1"> @@ -2332,9 +2330,9 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git diff <b><1></b> +<pre><code>$ git diff <b><1></b> $ git diff --cached <b><2></b> -$ git diff HEAD <b><3></b></tt></pre> +$ git diff HEAD <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -2362,9 +2360,9 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git diff test <b><1></b> +<pre><code>$ git diff test <b><1></b> $ git diff HEAD -- ./test <b><2></b> -$ git diff HEAD^ HEAD <b><3></b></tt></pre> +$ git diff HEAD^ HEAD <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -2393,9 +2391,9 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git diff topic master <b><1></b> +<pre><code>$ git diff topic master <b><1></b> $ git diff topic..master <b><2></b> -$ git diff topic...master <b><3></b></tt></pre> +$ git diff topic...master <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -2422,9 +2420,9 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git diff --diff-filter=MRC <b><1></b> +<pre><code>$ git diff --diff-filter=MRC <b><1></b> $ git diff --name-status <b><2></b> -$ git diff arch/i386 include/asm-i386 <b><3></b></tt></pre> +$ git diff arch/i386 include/asm-i386 <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -2452,8 +2450,8 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git diff --find-copies-harder -B -C <b><1></b> -$ git diff -R <b><2></b></tt></pre> +<pre><code>$ git diff --find-copies-harder -B -C <b><1></b> +$ git diff -R <b><2></b></code></pre> </div></div> <div class="colist arabic"><ol> <li>
diff --git a/git-fast-import.html b/git-fast-import.html index c7f4cb3..93cb767 100644 --- a/git-fast-import.html +++ b/git-fast-import.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-fast-import(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -818,8 +816,8 @@ </dt> <dd> <p> - Write responses to <tt>cat-blob</tt> and <tt>ls</tt> queries to the - file descriptor <fd> instead of <tt>stdout</tt>. Allows <tt>progress</tt> + Write responses to <code>cat-blob</code> and <code>ls</code> queries to the + file descriptor <fd> instead of <code>stdout</code>. Allows <code>progress</code> output intended for the end-user to be separated from other output. </p> @@ -830,7 +828,7 @@ <dd> <p> Specify the type of dates the frontend will supply to - fast-import within <tt>author</tt>, <tt>committer</tt> and <tt>tagger</tt> commands. + fast-import within <code>author</code>, <code>committer</code> and <code>tagger</code> commands. See “Date Formats” below for details about which formats are supported, and their syntax. </p> @@ -840,7 +838,7 @@ </dt> <dd> <p> - Terminate with error if there is no <tt>done</tt> command at the end of + Terminate with error if there is no <code>done</code> command at the end of the stream. This option might be useful for detecting errors that cause the frontend to terminate before it has started to write a stream. @@ -857,7 +855,7 @@ <dd> <p> Dumps the internal marks table to <file> when complete. - Marks are written one per line as <tt>:markid SHA-1</tt>. + Marks are written one per line as <code>:markid SHA-1</code>. Frontends can use this file to validate imports after they have been completed, or to save the marks table across incremental runs. As <file> is only opened and truncated @@ -994,7 +992,7 @@ <h2 id="_parallel_operation">Parallel Operation</h2> <div class="sectionbody"> <div class="paragraph"><p>Like <em>git push</em> or <em>git fetch</em>, imports handled by fast-import are safe to -run alongside parallel <tt>git repack -a -d</tt> or <tt>git gc</tt> invocations, +run alongside parallel <code>git repack -a -d</code> or <code>git gc</code> invocations, or any other Git operation (including <em>git prune</em>, as loose objects are never used by fast-import).</p></div> <div class="paragraph"><p>fast-import does not lock the branch or tag refs it is actively importing. @@ -1015,13 +1013,13 @@ <div class="sectionbody"> <div class="paragraph"><p>fast-import tracks a set of branches in memory. Any branch can be created or modified at any point during the import process by sending a -<tt>commit</tt> command on the input stream. This design allows a frontend +<code>commit</code> command on the input stream. This design allows a frontend program to process an unlimited number of branches simultaneously, generating commits in the order they are available from the source data. It also simplifies the frontend programs considerably.</p></div> <div class="paragraph"><p>fast-import does not use or alter the current working directory, or any file within it. (It does however update the current Git repository, -as referenced by <tt>GIT_DIR</tt>.) Therefore an import frontend may use +as referenced by <code>GIT_DIR</code>.) Therefore an import frontend may use the working directory for its own purposes, such as extracting file revisions from the foreign source. This ignorance of the working directory also allows fast-import to run very quickly, as it does not @@ -1047,8 +1045,8 @@ <div class="sect2"> <h3 id="_stream_comments">Stream Comments</h3> <div class="paragraph"><p>To aid in debugging frontends fast-import ignores any line that -begins with <tt>#</tt> (ASCII pound/hash) up to and including the line -ending <tt>LF</tt>. A comment line may contain any sequence of bytes +begins with <code>#</code> (ASCII pound/hash) up to and including the line +ending <code>LF</code>. A comment line may contain any sequence of bytes that does not contain an LF and therefore may be used to include any detailed debugging information that might be specific to the frontend and useful when inspecting a fast-import data stream.</p></div> @@ -1060,32 +1058,32 @@ in the --date-format=<fmt> command-line option.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>raw</tt> +<code>raw</code> </dt> <dd> <p> - This is the Git native format and is <tt><time> SP <offutc></tt>. + This is the Git native format and is <code><time> SP <offutc></code>. It is also fast-import’s default format, if --date-format was not specified. </p> -<div class="paragraph"><p>The time of the event is specified by <tt><time></tt> as the number of +<div class="paragraph"><p>The time of the event is specified by <code><time></code> as the number of seconds since the UNIX epoch (midnight, Jan 1, 1970, UTC) and is written as an ASCII decimal integer.</p></div> -<div class="paragraph"><p>The local offset is specified by <tt><offutc></tt> as a positive or negative +<div class="paragraph"><p>The local offset is specified by <code><offutc></code> as a positive or negative offset from UTC. For example EST (which is 5 hours behind UTC) -would be expressed in <tt><tz></tt> by “-0500” while UTC is “+0000”. -The local offset does not affect <tt><time></tt>; it is used only as an +would be expressed in <code><tz></code> by “-0500” while UTC is “+0000”. +The local offset does not affect <code><time></code>; it is used only as an advisement to help formatting routines display the timestamp.</p></div> <div class="paragraph"><p>If the local offset is not available in the source material, use “+0000”, or the most common local offset. For example many organizations have a CVS repository which has only ever been accessed by users who are located in the same location and time zone. In this case a reasonable offset from UTC could be assumed.</p></div> -<div class="paragraph"><p>Unlike the <tt>rfc2822</tt> format, this format is very strict. Any +<div class="paragraph"><p>Unlike the <code>rfc2822</code> format, this format is very strict. Any variation in formatting will cause fast-import to reject the value.</p></div> </dd> <dt class="hdlist1"> -<tt>rfc2822</tt> +<code>rfc2822</code> </dt> <dd> <p> @@ -1100,7 +1098,7 @@ the malformed string. There are also some types of malformed strings which Git will parse wrong, and yet consider valid. Seriously malformed strings will be rejected.</p></div> -<div class="paragraph"><p>Unlike the <tt>raw</tt> format above, the time zone/UTC offset information +<div class="paragraph"><p>Unlike the <code>raw</code> format above, the time zone/UTC offset information contained in an RFC 2822 date string is used to adjust the date value to UTC prior to storage. Therefore it is important that this information be as accurate as possible.</p></div> @@ -1108,18 +1106,18 @@ the frontend should let fast-import handle the parsing and conversion (rather than attempting to do it itself) as the Git parser has been well tested in the wild.</p></div> -<div class="paragraph"><p>Frontends should prefer the <tt>raw</tt> format if the source material +<div class="paragraph"><p>Frontends should prefer the <code>raw</code> format if the source material already uses UNIX-epoch format, can be coaxed to give dates in that format, or its format is easily convertible to it, as there is no ambiguity in parsing.</p></div> </dd> <dt class="hdlist1"> -<tt>now</tt> +<code>now</code> </dt> <dd> <p> Always use the current time and time zone. The literal - <tt>now</tt> must always be supplied for <tt><when></tt>. + <code>now</code> must always be supplied for <code><when></code>. </p> <div class="paragraph"><p>This is a toy format. The current time and time zone of this system is always copied into the identity string at the time it is being @@ -1129,12 +1127,12 @@ may be useful to a process that wants to create a new commit right now, without needing to use a working directory or <em>git update-index</em>.</p></div> -<div class="paragraph"><p>If separate <tt>author</tt> and <tt>committer</tt> commands are used in a <tt>commit</tt> +<div class="paragraph"><p>If separate <code>author</code> and <code>committer</code> commands are used in a <code>commit</code> the timestamps may not match, as the system clock will be polled twice (once for each command). The only way to ensure that both author and committer identity information has the same timestamp -is to omit <tt>author</tt> (thus copying from <tt>committer</tt>) or to use a -date format other than <tt>now</tt>.</p></div> +is to omit <code>author</code> (thus copying from <code>committer</code>) or to use a +date format other than <code>now</code>.</p></div> </dd> </dl></div> </div> @@ -1145,7 +1143,7 @@ (with examples) of each command follows later.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>commit</tt> +<code>commit</code> </dt> <dd> <p> @@ -1155,7 +1153,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>tag</tt> +<code>tag</code> </dt> <dd> <p> @@ -1166,7 +1164,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>reset</tt> +<code>reset</code> </dt> <dd> <p> @@ -1176,17 +1174,17 @@ </p> </dd> <dt class="hdlist1"> -<tt>blob</tt> +<code>blob</code> </dt> <dd> <p> Convert raw file data into a blob, for future use in a - <tt>commit</tt> command. This command is optional and is not + <code>commit</code> command. This command is optional and is not needed to perform an import. </p> </dd> <dt class="hdlist1"> -<tt>checkpoint</tt> +<code>checkpoint</code> </dt> <dd> <p> @@ -1197,7 +1195,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>progress</tt> +<code>progress</code> </dt> <dd> <p> @@ -1207,37 +1205,37 @@ </p> </dd> <dt class="hdlist1"> -<tt>done</tt> +<code>done</code> </dt> <dd> <p> Marks the end of the stream. This command is optional - unless the <tt>done</tt> feature was requested using the - <tt>--done</tt> command-line option or <tt>feature done</tt> command. + unless the <code>done</code> feature was requested using the + <code>--done</code> command-line option or <code>feature done</code> command. </p> </dd> <dt class="hdlist1"> -<tt>cat-blob</tt> +<code>cat-blob</code> </dt> <dd> <p> Causes fast-import to print a blob in <em>cat-file --batch</em> - format to the file descriptor set with <tt>--cat-blob-fd</tt> or - <tt>stdout</tt> if unspecified. + format to the file descriptor set with <code>--cat-blob-fd</code> or + <code>stdout</code> if unspecified. </p> </dd> <dt class="hdlist1"> -<tt>ls</tt> +<code>ls</code> </dt> <dd> <p> Causes fast-import to print a line describing a directory entry in <em>ls-tree</em> format to the file descriptor set with - <tt>--cat-blob-fd</tt> or <tt>stdout</tt> if unspecified. + <code>--cat-blob-fd</code> or <code>stdout</code> if unspecified. </p> </dd> <dt class="hdlist1"> -<tt>feature</tt> +<code>feature</code> </dt> <dd> <p> @@ -1246,7 +1244,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>option</tt> +<code>option</code> </dt> <dd> <p> @@ -1258,12 +1256,12 @@ </dl></div> </div> <div class="sect2"> -<h3 id="_tt_commit_tt"><tt>commit</tt></h3> +<h3 id="_code_commit_code"><code>commit</code></h3> <div class="paragraph"><p>Create or update a branch with a new commit, recording one logical change to the project.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'commit' SP <ref> LF +<pre><code> 'commit' SP <ref> LF mark? ('author' (SP <name>)? SP LT <email> GT SP <when> LF)? 'committer' (SP <name>)? SP LT <email> GT SP <when> LF @@ -1271,75 +1269,75 @@ ('from' SP <commit-ish> LF)? ('merge' SP <commit-ish> LF)? (filemodify | filedelete | filecopy | filerename | filedeleteall | notemodify)* - LF?</tt></pre> + LF?</code></pre> </div></div> -<div class="paragraph"><p>where <tt><ref></tt> is the name of the branch to make the commit on. -Typically branch names are prefixed with <tt>refs/heads/</tt> in -Git, so importing the CVS branch symbol <tt>RELENG-1_0</tt> would use -<tt>refs/heads/RELENG-1_0</tt> for the value of <tt><ref></tt>. The value of -<tt><ref></tt> must be a valid refname in Git. As <tt>LF</tt> is not valid in +<div class="paragraph"><p>where <code><ref></code> is the name of the branch to make the commit on. +Typically branch names are prefixed with <code>refs/heads/</code> in +Git, so importing the CVS branch symbol <code>RELENG-1_0</code> would use +<code>refs/heads/RELENG-1_0</code> for the value of <code><ref></code>. The value of +<code><ref></code> must be a valid refname in Git. As <code>LF</code> is not valid in a Git refname, no quoting or escaping syntax is supported here.</p></div> -<div class="paragraph"><p>A <tt>mark</tt> command may optionally appear, requesting fast-import to save a +<div class="paragraph"><p>A <code>mark</code> command may optionally appear, requesting fast-import to save a reference to the newly created commit for future use by the frontend (see below for format). It is very common for frontends to mark every commit they create, thereby allowing future branch creation from any imported commit.</p></div> -<div class="paragraph"><p>The <tt>data</tt> command following <tt>committer</tt> must supply the commit -message (see below for <tt>data</tt> command syntax). To import an empty +<div class="paragraph"><p>The <code>data</code> command following <code>committer</code> must supply the commit +message (see below for <code>data</code> command syntax). To import an empty commit message use a 0 length data. Commit messages are free-form and are not interpreted by Git. Currently they must be encoded in UTF-8, as fast-import does not permit other encodings to be specified.</p></div> -<div class="paragraph"><p>Zero or more <tt>filemodify</tt>, <tt>filedelete</tt>, <tt>filecopy</tt>, <tt>filerename</tt>, -<tt>filedeleteall</tt> and <tt>notemodify</tt> commands +<div class="paragraph"><p>Zero or more <code>filemodify</code>, <code>filedelete</code>, <code>filecopy</code>, <code>filerename</code>, +<code>filedeleteall</code> and <code>notemodify</code> commands may be included to update the contents of the branch prior to creating the commit. These commands may be supplied in any order. -However it is recommended that a <tt>filedeleteall</tt> command precede -all <tt>filemodify</tt>, <tt>filecopy</tt>, <tt>filerename</tt> and <tt>notemodify</tt> commands in -the same commit, as <tt>filedeleteall</tt> wipes the branch clean (see below).</p></div> -<div class="paragraph"><p>The <tt>LF</tt> after the command is optional (it used to be required).</p></div> +However it is recommended that a <code>filedeleteall</code> command precede +all <code>filemodify</code>, <code>filecopy</code>, <code>filerename</code> and <code>notemodify</code> commands in +the same commit, as <code>filedeleteall</code> wipes the branch clean (see below).</p></div> +<div class="paragraph"><p>The <code>LF</code> after the command is optional (it used to be required).</p></div> <div class="sect3"> -<h4 id="_tt_author_tt"><tt>author</tt></h4> -<div class="paragraph"><p>An <tt>author</tt> command may optionally appear, if the author information -might differ from the committer information. If <tt>author</tt> is omitted +<h4 id="_code_author_code"><code>author</code></h4> +<div class="paragraph"><p>An <code>author</code> command may optionally appear, if the author information +might differ from the committer information. If <code>author</code> is omitted then fast-import will automatically use the committer’s information for the author portion of the commit. See below for a description of -the fields in <tt>author</tt>, as they are identical to <tt>committer</tt>.</p></div> +the fields in <code>author</code>, as they are identical to <code>committer</code>.</p></div> </div> <div class="sect3"> -<h4 id="_tt_committer_tt"><tt>committer</tt></h4> -<div class="paragraph"><p>The <tt>committer</tt> command indicates who made this commit, and when +<h4 id="_code_committer_code"><code>committer</code></h4> +<div class="paragraph"><p>The <code>committer</code> command indicates who made this commit, and when they made it.</p></div> -<div class="paragraph"><p>Here <tt><name></tt> is the person’s display name (for example -“Com M Itter”) and <tt><email></tt> is the person’s email address -(“cm@example.com”). <tt>LT</tt> and <tt>GT</tt> are the literal less-than (\x3c) +<div class="paragraph"><p>Here <code><name></code> is the person’s display name (for example +“Com M Itter”) and <code><email></code> is the person’s email address +(“cm@example.com”). <code>LT</code> and <code>GT</code> are the literal less-than (\x3c) and greater-than (\x3e) symbols. These are required to delimit the email address from the other fields in the line. Note that -<tt><name></tt> and <tt><email></tt> are free-form and may contain any sequence -of bytes, except <tt>LT</tt>, <tt>GT</tt> and <tt>LF</tt>. <tt><name></tt> is typically UTF-8 encoded.</p></div> -<div class="paragraph"><p>The time of the change is specified by <tt><when></tt> using the date format +<code><name></code> and <code><email></code> are free-form and may contain any sequence +of bytes, except <code>LT</code>, <code>GT</code> and <code>LF</code>. <code><name></code> is typically UTF-8 encoded.</p></div> +<div class="paragraph"><p>The time of the change is specified by <code><when></code> using the date format that was selected by the --date-format=<fmt> command-line option. See “Date Formats” above for the set of supported formats, and their syntax.</p></div> </div> <div class="sect3"> -<h4 id="_tt_from_tt"><tt>from</tt></h4> -<div class="paragraph"><p>The <tt>from</tt> command is used to specify the commit to initialize +<h4 id="_code_from_code"><code>from</code></h4> +<div class="paragraph"><p>The <code>from</code> command is used to specify the commit to initialize this branch from. This revision will be the first ancestor of the new commit. The state of the tree built at this commit will begin -with the state at the <tt>from</tt> commit, and be altered by the content +with the state at the <code>from</code> commit, and be altered by the content modifications in this commit.</p></div> -<div class="paragraph"><p>Omitting the <tt>from</tt> command in the first commit of a new branch +<div class="paragraph"><p>Omitting the <code>from</code> command in the first commit of a new branch will cause fast-import to create that commit with no ancestor. This tends to be desired only for the initial commit of a project. If the frontend creates all files from scratch when making a new -branch, a <tt>merge</tt> command may be used instead of <tt>from</tt> to start +branch, a <code>merge</code> command may be used instead of <code>from</code> to start the commit with an empty tree. -Omitting the <tt>from</tt> command on existing branches is usually desired, +Omitting the <code>from</code> command on existing branches is usually desired, as the current commit on that branch is automatically assumed to be the first ancestor of the new commit.</p></div> -<div class="paragraph"><p>As <tt>LF</tt> is not valid in a Git refname or SHA-1 expression, no -quoting or escaping syntax is supported within <tt><commit-ish></tt>.</p></div> -<div class="paragraph"><p>Here <tt><commit-ish></tt> is any of the following:</p></div> +<div class="paragraph"><p>As <code>LF</code> is not valid in a Git refname or SHA-1 expression, no +quoting or escaping syntax is supported within <code><commit-ish></code>.</p></div> +<div class="paragraph"><p>Here <code><commit-ish></code> is any of the following:</p></div> <div class="ulist"><ul> <li> <p> @@ -1350,14 +1348,14 @@ </li> <li> <p> -A mark reference, <tt>:<idnum></tt>, where <tt><idnum></tt> is the mark number. +A mark reference, <code>:<idnum></code>, where <code><idnum></code> is the mark number. </p> -<div class="paragraph"><p>The reason fast-import uses <tt>:</tt> to denote a mark reference is this character -is not legal in a Git branch name. The leading <tt>:</tt> makes it easy -to distinguish between the mark 42 (<tt>:42</tt>) and the branch 42 (<tt>42</tt> -or <tt>refs/heads/42</tt>), or an abbreviated SHA-1 which happened to +<div class="paragraph"><p>The reason fast-import uses <code>:</code> to denote a mark reference is this character +is not legal in a Git branch name. The leading <code>:</code> makes it easy +to distinguish between the mark 42 (<code>:42</code>) and the branch 42 (<code>42</code> +or <code>refs/heads/42</code>), or an abbreviated SHA-1 which happened to consist only of base-10 digits.</p></div> -<div class="paragraph"><p>Marks must be declared (via <tt>mark</tt>) before they can be used.</p></div> +<div class="paragraph"><p>Marks must be declared (via <code>mark</code>) before they can be used.</p></div> </li> <li> <p> @@ -1381,34 +1379,34 @@ current branch value should be written as:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> from refs/heads/branch^0</tt></pre> +<pre><code> from refs/heads/branch^0</code></pre> </div></div> -<div class="paragraph"><p>The <tt>^0</tt> suffix is necessary as fast-import does not permit a branch to +<div class="paragraph"><p>The <code>^0</code> suffix is necessary as fast-import does not permit a branch to start from itself, and the branch is created in memory before the -<tt>from</tt> command is even read from the input. Adding <tt>^0</tt> will force +<code>from</code> command is even read from the input. Adding <code>^0</code> will force fast-import to resolve the commit through Git’s revision parsing library, rather than its internal branch table, thereby loading in the existing value of the branch.</p></div> </div> <div class="sect3"> -<h4 id="_tt_merge_tt"><tt>merge</tt></h4> +<h4 id="_code_merge_code"><code>merge</code></h4> <div class="paragraph"><p>Includes one additional ancestor commit. The additional ancestry link does not change the way the tree state is built at this commit. -If the <tt>from</tt> command is -omitted when creating a new branch, the first <tt>merge</tt> commit will be +If the <code>from</code> command is +omitted when creating a new branch, the first <code>merge</code> commit will be the first ancestor of the current commit, and the branch will start -out with no files. An unlimited number of <tt>merge</tt> commands per +out with no files. An unlimited number of <code>merge</code> commands per commit are permitted by fast-import, thereby establishing an n-way merge. However Git’s other tools never create commits with more than 15 additional ancestors (forming a 16-way merge). For this reason -it is suggested that frontends do not use more than 15 <tt>merge</tt> +it is suggested that frontends do not use more than 15 <code>merge</code> commands per commit; 16, if starting a new, empty branch.</p></div> -<div class="paragraph"><p>Here <tt><commit-ish></tt> is any of the commit specification expressions -also accepted by <tt>from</tt> (see above).</p></div> +<div class="paragraph"><p>Here <code><commit-ish></code> is any of the commit specification expressions +also accepted by <code>from</code> (see above).</p></div> </div> <div class="sect3"> -<h4 id="_tt_filemodify_tt"><tt>filemodify</tt></h4> -<div class="paragraph"><p>Included in a <tt>commit</tt> command to add a new file or change the +<h4 id="_code_filemodify_code"><code>filemodify</code></h4> +<div class="paragraph"><p>Included in a <code>commit</code> command to add a new file or change the content of an existing file. This command has two different means of specifying the content of the file.</p></div> <div class="dlist"><dl> @@ -1418,17 +1416,17 @@ <dd> <p> The data content for the file was already supplied by a prior - <tt>blob</tt> command. The frontend just needs to connect it. + <code>blob</code> command. The frontend just needs to connect it. </p> <div class="literalblock"> <div class="content"> -<pre><tt> 'M' SP <mode> SP <dataref> SP <path> LF</tt></pre> +<pre><code> 'M' SP <mode> SP <dataref> SP <path> LF</code></pre> </div></div> -<div class="paragraph"><p>Here usually <tt><dataref></tt> must be either a mark reference (<tt>:<idnum></tt>) -set by a prior <tt>blob</tt> command, or a full 40-byte SHA-1 of an -existing Git blob object. If <tt><mode></tt> is <tt>040000`</tt> then -<tt><dataref></tt> must be the full 40-byte SHA-1 of an existing -Git tree object or a mark reference set with <tt>--import-marks</tt>.</p></div> +<div class="paragraph"><p>Here usually <code><dataref></code> must be either a mark reference (<code>:<idnum></code>) +set by a prior <code>blob</code> command, or a full 40-byte SHA-1 of an +existing Git blob object. If <code><mode></code> is <code>040000`</code> then +<code><dataref></code> must be the full 40-byte SHA-1 of an existing +Git tree object or a mark reference set with <code>--import-marks</code>.</p></div> </dd> <dt class="hdlist1"> Inline data format @@ -1441,174 +1439,174 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt> 'M' SP <mode> SP 'inline' SP <path> LF - data</tt></pre> +<pre><code> 'M' SP <mode> SP 'inline' SP <path> LF + data</code></pre> </div></div> -<div class="paragraph"><p>See below for a detailed description of the <tt>data</tt> command.</p></div> +<div class="paragraph"><p>See below for a detailed description of the <code>data</code> command.</p></div> </dd> </dl></div> -<div class="paragraph"><p>In both formats <tt><mode></tt> is the type of file entry, specified +<div class="paragraph"><p>In both formats <code><mode></code> is the type of file entry, specified in octal. Git only supports the following modes:</p></div> <div class="ulist"><ul> <li> <p> -<tt>100644</tt> or <tt>644</tt>: A normal (not-executable) file. The majority +<code>100644</code> or <code>644</code>: A normal (not-executable) file. The majority of files in most projects use this mode. If in doubt, this is what you want. </p> </li> <li> <p> -<tt>100755</tt> or <tt>755</tt>: A normal, but executable, file. +<code>100755</code> or <code>755</code>: A normal, but executable, file. </p> </li> <li> <p> -<tt>120000</tt>: A symlink, the content of the file will be the link target. +<code>120000</code>: A symlink, the content of the file will be the link target. </p> </li> <li> <p> -<tt>160000</tt>: A gitlink, SHA-1 of the object refers to a commit in +<code>160000</code>: A gitlink, SHA-1 of the object refers to a commit in another repository. Git links can only be specified by SHA or through a commit mark. They are used to implement submodules. </p> </li> <li> <p> -<tt>040000</tt>: A subdirectory. Subdirectories can only be specified by - SHA or through a tree mark set with <tt>--import-marks</tt>. +<code>040000</code>: A subdirectory. Subdirectories can only be specified by + SHA or through a tree mark set with <code>--import-marks</code>. </p> </li> </ul></div> -<div class="paragraph"><p>In both formats <tt><path></tt> is the complete path of the file to be added +<div class="paragraph"><p>In both formats <code><path></code> is the complete path of the file to be added (if not already existing) or modified (if already existing).</p></div> -<div class="paragraph"><p>A <tt><path></tt> string must use UNIX-style directory separators (forward -slash <tt>/</tt>), may contain any byte other than <tt>LF</tt>, and must not -start with double quote (<tt>"</tt>).</p></div> +<div class="paragraph"><p>A <code><path></code> string must use UNIX-style directory separators (forward +slash <code>/</code>), may contain any byte other than <code>LF</code>, and must not +start with double quote (<code>"</code>).</p></div> <div class="paragraph"><p>A path can use C-style string quoting; this is accepted in all cases and mandatory if the filename starts with double quote or contains -<tt>LF</tt>. In C-style quoting, the complete name should be surrounded with -double quotes, and any <tt>LF</tt>, backslash, or double quote characters +<code>LF</code>. In C-style quoting, the complete name should be surrounded with +double quotes, and any <code>LF</code>, backslash, or double quote characters must be escaped by preceding them with a backslash (e.g., -<tt>"path/with\n, \\ and \" in it"</tt>).</p></div> -<div class="paragraph"><p>The value of <tt><path></tt> must be in canonical form. That is it must not:</p></div> +<code>"path/with\n, \\ and \" in it"</code>).</p></div> +<div class="paragraph"><p>The value of <code><path></code> must be in canonical form. That is it must not:</p></div> <div class="ulist"><ul> <li> <p> -contain an empty directory component (e.g. <tt>foo//bar</tt> is invalid), +contain an empty directory component (e.g. <code>foo//bar</code> is invalid), </p> </li> <li> <p> -end with a directory separator (e.g. <tt>foo/</tt> is invalid), +end with a directory separator (e.g. <code>foo/</code> is invalid), </p> </li> <li> <p> -start with a directory separator (e.g. <tt>/foo</tt> is invalid), +start with a directory separator (e.g. <code>/foo</code> is invalid), </p> </li> <li> <p> -contain the special component <tt>.</tt> or <tt>..</tt> (e.g. <tt>foo/./bar</tt> and - <tt>foo/../bar</tt> are invalid). +contain the special component <code>.</code> or <code>..</code> (e.g. <code>foo/./bar</code> and + <code>foo/../bar</code> are invalid). </p> </li> </ul></div> -<div class="paragraph"><p>The root of the tree can be represented by an empty string as <tt><path></tt>.</p></div> -<div class="paragraph"><p>It is recommended that <tt><path></tt> always be encoded using UTF-8.</p></div> +<div class="paragraph"><p>The root of the tree can be represented by an empty string as <code><path></code>.</p></div> +<div class="paragraph"><p>It is recommended that <code><path></code> always be encoded using UTF-8.</p></div> </div> <div class="sect3"> -<h4 id="_tt_filedelete_tt"><tt>filedelete</tt></h4> -<div class="paragraph"><p>Included in a <tt>commit</tt> command to remove a file or recursively +<h4 id="_code_filedelete_code"><code>filedelete</code></h4> +<div class="paragraph"><p>Included in a <code>commit</code> command to remove a file or recursively delete an entire directory from the branch. If the file or directory removal makes its parent directory empty, the parent directory will be automatically removed too. This cascades up the tree until the first non-empty directory or the root is reached.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'D' SP <path> LF</tt></pre> +<pre><code> 'D' SP <path> LF</code></pre> </div></div> -<div class="paragraph"><p>here <tt><path></tt> is the complete path of the file or subdirectory to +<div class="paragraph"><p>here <code><path></code> is the complete path of the file or subdirectory to be removed from the branch. -See <tt>filemodify</tt> above for a detailed description of <tt><path></tt>.</p></div> +See <code>filemodify</code> above for a detailed description of <code><path></code>.</p></div> </div> <div class="sect3"> -<h4 id="_tt_filecopy_tt"><tt>filecopy</tt></h4> +<h4 id="_code_filecopy_code"><code>filecopy</code></h4> <div class="paragraph"><p>Recursively copies an existing file or subdirectory to a different location within the branch. The existing file or directory must exist. If the destination exists it will be completely replaced by the content copied from the source.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'C' SP <path> SP <path> LF</tt></pre> +<pre><code> 'C' SP <path> SP <path> LF</code></pre> </div></div> -<div class="paragraph"><p>here the first <tt><path></tt> is the source location and the second -<tt><path></tt> is the destination. See <tt>filemodify</tt> above for a detailed -description of what <tt><path></tt> may look like. To use a source path +<div class="paragraph"><p>here the first <code><path></code> is the source location and the second +<code><path></code> is the destination. See <code>filemodify</code> above for a detailed +description of what <code><path></code> may look like. To use a source path that contains SP the path must be quoted.</p></div> -<div class="paragraph"><p>A <tt>filecopy</tt> command takes effect immediately. Once the source +<div class="paragraph"><p>A <code>filecopy</code> command takes effect immediately. Once the source location has been copied to the destination any future commands applied to the source location will not impact the destination of the copy.</p></div> </div> <div class="sect3"> -<h4 id="_tt_filerename_tt"><tt>filerename</tt></h4> +<h4 id="_code_filerename_code"><code>filerename</code></h4> <div class="paragraph"><p>Renames an existing file or subdirectory to a different location within the branch. The existing file or directory must exist. If the destination exists it will be replaced by the source directory.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'R' SP <path> SP <path> LF</tt></pre> +<pre><code> 'R' SP <path> SP <path> LF</code></pre> </div></div> -<div class="paragraph"><p>here the first <tt><path></tt> is the source location and the second -<tt><path></tt> is the destination. See <tt>filemodify</tt> above for a detailed -description of what <tt><path></tt> may look like. To use a source path +<div class="paragraph"><p>here the first <code><path></code> is the source location and the second +<code><path></code> is the destination. See <code>filemodify</code> above for a detailed +description of what <code><path></code> may look like. To use a source path that contains SP the path must be quoted.</p></div> -<div class="paragraph"><p>A <tt>filerename</tt> command takes effect immediately. Once the source +<div class="paragraph"><p>A <code>filerename</code> command takes effect immediately. Once the source location has been renamed to the destination any future commands applied to the source location will create new files there and not impact the destination of the rename.</p></div> -<div class="paragraph"><p>Note that a <tt>filerename</tt> is the same as a <tt>filecopy</tt> followed by a -<tt>filedelete</tt> of the source location. There is a slight performance -advantage to using <tt>filerename</tt>, but the advantage is so small +<div class="paragraph"><p>Note that a <code>filerename</code> is the same as a <code>filecopy</code> followed by a +<code>filedelete</code> of the source location. There is a slight performance +advantage to using <code>filerename</code>, but the advantage is so small that it is never worth trying to convert a delete/add pair in -source material into a rename for fast-import. This <tt>filerename</tt> +source material into a rename for fast-import. This <code>filerename</code> command is provided just to simplify frontends that already have rename information and don’t want bother with decomposing it into a -<tt>filecopy</tt> followed by a <tt>filedelete</tt>.</p></div> +<code>filecopy</code> followed by a <code>filedelete</code>.</p></div> </div> <div class="sect3"> -<h4 id="_tt_filedeleteall_tt"><tt>filedeleteall</tt></h4> -<div class="paragraph"><p>Included in a <tt>commit</tt> command to remove all files (and also all +<h4 id="_code_filedeleteall_code"><code>filedeleteall</code></h4> +<div class="paragraph"><p>Included in a <code>commit</code> command to remove all files (and also all directories) from the branch. This command resets the internal branch structure to have no files in it, allowing the frontend to subsequently add all interesting files from scratch.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'deleteall' LF</tt></pre> +<pre><code> 'deleteall' LF</code></pre> </div></div> <div class="paragraph"><p>This command is extremely useful if the frontend does not know (or does not care to know) what files are currently on the branch, -and therefore cannot generate the proper <tt>filedelete</tt> commands to +and therefore cannot generate the proper <code>filedelete</code> commands to update the content.</p></div> -<div class="paragraph"><p>Issuing a <tt>filedeleteall</tt> followed by the needed <tt>filemodify</tt> +<div class="paragraph"><p>Issuing a <code>filedeleteall</code> followed by the needed <code>filemodify</code> commands to set the correct content will produce the same results -as sending only the needed <tt>filemodify</tt> and <tt>filedelete</tt> commands. -The <tt>filedeleteall</tt> approach may however require fast-import to use slightly +as sending only the needed <code>filemodify</code> and <code>filedelete</code> commands. +The <code>filedeleteall</code> approach may however require fast-import to use slightly more memory per active branch (less than 1 MiB for even most large projects); so frontends that can easily obtain only the affected paths for a commit are encouraged to do so.</p></div> </div> <div class="sect3"> -<h4 id="_tt_notemodify_tt"><tt>notemodify</tt></h4> -<div class="paragraph"><p>Included in a <tt>commit</tt> <tt><notes_ref></tt> command to add a new note -annotating a <tt><commit-ish></tt> or change this annotation contents. -Internally it is similar to filemodify 100644 on <tt><commit-ish></tt> +<h4 id="_code_notemodify_code"><code>notemodify</code></h4> +<div class="paragraph"><p>Included in a <code>commit</code> <code><notes_ref></code> command to add a new note +annotating a <code><commit-ish></code> or change this annotation contents. +Internally it is similar to filemodify 100644 on <code><commit-ish></code> path (maybe split into subdirectories). It’s not advised to -use any other commands to write to the <tt><notes_ref></tt> tree except -<tt>filedeleteall</tt> to delete all existing notes in this tree. +use any other commands to write to the <code><notes_ref></code> tree except +<code>filedeleteall</code> to delete all existing notes in this tree. This command has two different means of specifying the content of the note.</p></div> <div class="dlist"><dl> @@ -1618,15 +1616,15 @@ <dd> <p> The data content for the note was already supplied by a prior - <tt>blob</tt> command. The frontend just needs to connect it to the + <code>blob</code> command. The frontend just needs to connect it to the commit that is to be annotated. </p> <div class="literalblock"> <div class="content"> -<pre><tt> 'N' SP <dataref> SP <commit-ish> LF</tt></pre> +<pre><code> 'N' SP <dataref> SP <commit-ish> LF</code></pre> </div></div> -<div class="paragraph"><p>Here <tt><dataref></tt> can be either a mark reference (<tt>:<idnum></tt>) -set by a prior <tt>blob</tt> command, or a full 40-byte SHA-1 of an +<div class="paragraph"><p>Here <code><dataref></code> can be either a mark reference (<code>:<idnum></code>) +set by a prior <code>blob</code> command, or a full 40-byte SHA-1 of an existing Git blob object.</p></div> </dd> <dt class="hdlist1"> @@ -1640,60 +1638,60 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt> 'N' SP 'inline' SP <commit-ish> LF - data</tt></pre> +<pre><code> 'N' SP 'inline' SP <commit-ish> LF + data</code></pre> </div></div> -<div class="paragraph"><p>See below for a detailed description of the <tt>data</tt> command.</p></div> +<div class="paragraph"><p>See below for a detailed description of the <code>data</code> command.</p></div> </dd> </dl></div> -<div class="paragraph"><p>In both formats <tt><commit-ish></tt> is any of the commit specification -expressions also accepted by <tt>from</tt> (see above).</p></div> +<div class="paragraph"><p>In both formats <code><commit-ish></code> is any of the commit specification +expressions also accepted by <code>from</code> (see above).</p></div> </div> </div> <div class="sect2"> -<h3 id="_tt_mark_tt"><tt>mark</tt></h3> +<h3 id="_code_mark_code"><code>mark</code></h3> <div class="paragraph"><p>Arranges for fast-import to save a reference to the current object, allowing the frontend to recall this object at a future point in time, without knowing its SHA-1. Here the current object is the object creation -command the <tt>mark</tt> command appears within. This can be <tt>commit</tt>, -<tt>tag</tt>, and <tt>blob</tt>, but <tt>commit</tt> is the most common usage.</p></div> +command the <code>mark</code> command appears within. This can be <code>commit</code>, +<code>tag</code>, and <code>blob</code>, but <code>commit</code> is the most common usage.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'mark' SP ':' <idnum> LF</tt></pre> +<pre><code> 'mark' SP ':' <idnum> LF</code></pre> </div></div> -<div class="paragraph"><p>where <tt><idnum></tt> is the number assigned by the frontend to this mark. -The value of <tt><idnum></tt> is expressed as an ASCII decimal integer. +<div class="paragraph"><p>where <code><idnum></code> is the number assigned by the frontend to this mark. +The value of <code><idnum></code> is expressed as an ASCII decimal integer. The value 0 is reserved and cannot be used as a mark. Only values greater than or equal to 1 may be used as marks.</p></div> <div class="paragraph"><p>New marks are created automatically. Existing marks can be moved -to another object simply by reusing the same <tt><idnum></tt> in another -<tt>mark</tt> command.</p></div> +to another object simply by reusing the same <code><idnum></code> in another +<code>mark</code> command.</p></div> </div> <div class="sect2"> -<h3 id="_tt_tag_tt"><tt>tag</tt></h3> +<h3 id="_code_tag_code"><code>tag</code></h3> <div class="paragraph"><p>Creates an annotated tag referring to a specific commit. To create -lightweight (non-annotated) tags see the <tt>reset</tt> command below.</p></div> +lightweight (non-annotated) tags see the <code>reset</code> command below.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'tag' SP <name> LF +<pre><code> 'tag' SP <name> LF 'from' SP <commit-ish> LF 'tagger' (SP <name>)? SP LT <email> GT SP <when> LF - data</tt></pre> + data</code></pre> </div></div> -<div class="paragraph"><p>where <tt><name></tt> is the name of the tag to create.</p></div> -<div class="paragraph"><p>Tag names are automatically prefixed with <tt>refs/tags/</tt> when stored -in Git, so importing the CVS branch symbol <tt>RELENG-1_0-FINAL</tt> would -use just <tt>RELENG-1_0-FINAL</tt> for <tt><name></tt>, and fast-import will write the -corresponding ref as <tt>refs/tags/RELENG-1_0-FINAL</tt>.</p></div> -<div class="paragraph"><p>The value of <tt><name></tt> must be a valid refname in Git and therefore -may contain forward slashes. As <tt>LF</tt> is not valid in a Git refname, +<div class="paragraph"><p>where <code><name></code> is the name of the tag to create.</p></div> +<div class="paragraph"><p>Tag names are automatically prefixed with <code>refs/tags/</code> when stored +in Git, so importing the CVS branch symbol <code>RELENG-1_0-FINAL</code> would +use just <code>RELENG-1_0-FINAL</code> for <code><name></code>, and fast-import will write the +corresponding ref as <code>refs/tags/RELENG-1_0-FINAL</code>.</p></div> +<div class="paragraph"><p>The value of <code><name></code> must be a valid refname in Git and therefore +may contain forward slashes. As <code>LF</code> is not valid in a Git refname, no quoting or escaping syntax is supported here.</p></div> -<div class="paragraph"><p>The <tt>from</tt> command is the same as in the <tt>commit</tt> command; see +<div class="paragraph"><p>The <code>from</code> command is the same as in the <code>commit</code> command; see above for details.</p></div> -<div class="paragraph"><p>The <tt>tagger</tt> command uses the same format as <tt>committer</tt> within -<tt>commit</tt>; again see above for details.</p></div> -<div class="paragraph"><p>The <tt>data</tt> command following <tt>tagger</tt> must supply the annotated tag -message (see below for <tt>data</tt> command syntax). To import an empty +<div class="paragraph"><p>The <code>tagger</code> command uses the same format as <code>committer</code> within +<code>commit</code>; again see above for details.</p></div> +<div class="paragraph"><p>The <code>data</code> command following <code>tagger</code> must supply the annotated tag +message (see below for <code>data</code> command syntax). To import an empty tag message use a 0 length data. Tag messages are free-form and are not interpreted by Git. Currently they must be encoded in UTF-8, as fast-import does not permit other encodings to be specified.</p></div> @@ -1702,66 +1700,66 @@ recommended, as the frontend does not (easily) have access to the complete set of bytes which normally goes into such a signature. If signing is required, create lightweight tags from within fast-import with -<tt>reset</tt>, then create the annotated versions of those tags offline +<code>reset</code>, then create the annotated versions of those tags offline with the standard <em>git tag</em> process.</p></div> </div> <div class="sect2"> -<h3 id="_tt_reset_tt"><tt>reset</tt></h3> +<h3 id="_code_reset_code"><code>reset</code></h3> <div class="paragraph"><p>Creates (or recreates) the named branch, optionally starting from a specific revision. The reset command allows a frontend to issue -a new <tt>from</tt> command for an existing branch, or to create a new +a new <code>from</code> command for an existing branch, or to create a new branch from an existing commit without creating a new commit.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'reset' SP <ref> LF +<pre><code> 'reset' SP <ref> LF ('from' SP <commit-ish> LF)? - LF?</tt></pre> + LF?</code></pre> </div></div> -<div class="paragraph"><p>For a detailed description of <tt><ref></tt> and <tt><commit-ish></tt> see above -under <tt>commit</tt> and <tt>from</tt>.</p></div> -<div class="paragraph"><p>The <tt>LF</tt> after the command is optional (it used to be required).</p></div> -<div class="paragraph"><p>The <tt>reset</tt> command can also be used to create lightweight +<div class="paragraph"><p>For a detailed description of <code><ref></code> and <code><commit-ish></code> see above +under <code>commit</code> and <code>from</code>.</p></div> +<div class="paragraph"><p>The <code>LF</code> after the command is optional (it used to be required).</p></div> +<div class="paragraph"><p>The <code>reset</code> command can also be used to create lightweight (non-annotated) tags. For example:</p></div> <div class="exampleblock"> <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>reset refs/tags/938 -from :938</tt></pre> +<pre><code>reset refs/tags/938 +from :938</code></pre> </div></div> </div></div> -<div class="paragraph"><p>would create the lightweight tag <tt>refs/tags/938</tt> referring to -whatever commit mark <tt>:938</tt> references.</p></div> +<div class="paragraph"><p>would create the lightweight tag <code>refs/tags/938</code> referring to +whatever commit mark <code>:938</code> references.</p></div> </div> <div class="sect2"> -<h3 id="_tt_blob_tt"><tt>blob</tt></h3> +<h3 id="_code_blob_code"><code>blob</code></h3> <div class="paragraph"><p>Requests writing one file revision to the packfile. The revision is not connected to any commit; this connection must be formed in -a subsequent <tt>commit</tt> command by referencing the blob through an +a subsequent <code>commit</code> command by referencing the blob through an assigned mark.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'blob' LF +<pre><code> 'blob' LF mark? - data</tt></pre> + data</code></pre> </div></div> <div class="paragraph"><p>The mark command is optional here as some frontends have chosen to generate the Git SHA-1 for the blob on their own, and feed that -directly to <tt>commit</tt>. This is typically more work than it’s worth +directly to <code>commit</code>. This is typically more work than it’s worth however, as marks are inexpensive to store and easy to use.</p></div> </div> <div class="sect2"> -<h3 id="_tt_data_tt"><tt>data</tt></h3> +<h3 id="_code_data_code"><code>data</code></h3> <div class="paragraph"><p>Supplies raw data (for use as blob/file content, commit messages, or annotated tag messages) to fast-import. Data can be supplied using an exact byte count or delimited with a terminating line. Real frontends intended for production-quality conversions should always use the exact byte count format, as it is more robust and performs better. The delimited format is intended primarily for testing fast-import.</p></div> -<div class="paragraph"><p>Comment lines appearing within the <tt><raw></tt> part of <tt>data</tt> commands +<div class="paragraph"><p>Comment lines appearing within the <code><raw></code> part of <code>data</code> commands are always taken to be part of the body of the data and are therefore never ignored by fast-import. This makes it safe to import any -file/message content whose lines might start with <tt>#</tt>.</p></div> +file/message content whose lines might start with <code>#</code>.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> Exact byte count format @@ -1772,17 +1770,17 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt> 'data' SP <count> LF - <raw> LF?</tt></pre> +<pre><code> 'data' SP <count> LF + <raw> LF?</code></pre> </div></div> -<div class="paragraph"><p>where <tt><count></tt> is the exact number of bytes appearing within -<tt><raw></tt>. The value of <tt><count></tt> is expressed as an ASCII decimal -integer. The <tt>LF</tt> on either side of <tt><raw></tt> is not -included in <tt><count></tt> and will not be included in the imported data.</p></div> -<div class="paragraph"><p>The <tt>LF</tt> after <tt><raw></tt> is optional (it used to be required) but +<div class="paragraph"><p>where <code><count></code> is the exact number of bytes appearing within +<code><raw></code>. The value of <code><count></code> is expressed as an ASCII decimal +integer. The <code>LF</code> on either side of <code><raw></code> is not +included in <code><count></code> and will not be included in the imported data.</p></div> +<div class="paragraph"><p>The <code>LF</code> after <code><raw></code> is optional (it used to be required) but recommended. Always including it makes debugging a fast-import stream easier as the next command always starts in column 0 -of the next line, even if <tt><raw></tt> did not end with an <tt>LF</tt>.</p></div> +of the next line, even if <code><raw></code> did not end with an <code>LF</code>.</p></div> </dd> <dt class="hdlist1"> Delimited format @@ -1796,108 +1794,108 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt> 'data' SP '<<' <delim> LF +<pre><code> 'data' SP '<<' <delim> LF <raw> LF <delim> LF - LF?</tt></pre> + LF?</code></pre> </div></div> -<div class="paragraph"><p>where <tt><delim></tt> is the chosen delimiter string. The string <tt><delim></tt> -must not appear on a line by itself within <tt><raw></tt>, as otherwise -fast-import will think the data ends earlier than it really does. The <tt>LF</tt> -immediately trailing <tt><raw></tt> is part of <tt><raw></tt>. This is one of +<div class="paragraph"><p>where <code><delim></code> is the chosen delimiter string. The string <code><delim></code> +must not appear on a line by itself within <code><raw></code>, as otherwise +fast-import will think the data ends earlier than it really does. The <code>LF</code> +immediately trailing <code><raw></code> is part of <code><raw></code>. This is one of the limitations of the delimited format, it is impossible to supply a data chunk which does not have an LF as its last byte.</p></div> -<div class="paragraph"><p>The <tt>LF</tt> after <tt><delim> LF</tt> is optional (it used to be required).</p></div> +<div class="paragraph"><p>The <code>LF</code> after <code><delim> LF</code> is optional (it used to be required).</p></div> </dd> </dl></div> </div> <div class="sect2"> -<h3 id="_tt_checkpoint_tt"><tt>checkpoint</tt></h3> +<h3 id="_code_checkpoint_code"><code>checkpoint</code></h3> <div class="paragraph"><p>Forces fast-import to close the current packfile, start a new one, and to save out all current branch refs, tags and marks.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'checkpoint' LF - LF?</tt></pre> +<pre><code> 'checkpoint' LF + LF?</code></pre> </div></div> <div class="paragraph"><p>Note that fast-import automatically switches packfiles when the current packfile reaches --max-pack-size, or 4 GiB, whichever limit is smaller. During an automatic packfile switch fast-import does not update the branch refs, tags or marks.</p></div> -<div class="paragraph"><p>As a <tt>checkpoint</tt> can require a significant amount of CPU time and +<div class="paragraph"><p>As a <code>checkpoint</code> can require a significant amount of CPU time and disk IO (to compute the overall pack SHA-1 checksum, generate the corresponding index file, and update the refs) it can easily take -several minutes for a single <tt>checkpoint</tt> command to complete.</p></div> +several minutes for a single <code>checkpoint</code> command to complete.</p></div> <div class="paragraph"><p>Frontends may choose to issue checkpoints during extremely large and long running imports, or when they need to allow another Git process access to a branch. However given that a 30 GiB Subversion repository can be loaded into Git through fast-import in about 3 hours, explicit checkpointing may not be necessary.</p></div> -<div class="paragraph"><p>The <tt>LF</tt> after the command is optional (it used to be required).</p></div> +<div class="paragraph"><p>The <code>LF</code> after the command is optional (it used to be required).</p></div> </div> <div class="sect2"> -<h3 id="_tt_progress_tt"><tt>progress</tt></h3> -<div class="paragraph"><p>Causes fast-import to print the entire <tt>progress</tt> line unmodified to +<h3 id="_code_progress_code"><code>progress</code></h3> +<div class="paragraph"><p>Causes fast-import to print the entire <code>progress</code> line unmodified to its standard output channel (file descriptor 1) when the command is processed from the input stream. The command otherwise has no impact on the current import, or on any of fast-import’s internal state.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'progress' SP <any> LF - LF?</tt></pre> +<pre><code> 'progress' SP <any> LF + LF?</code></pre> </div></div> -<div class="paragraph"><p>The <tt><any></tt> part of the command may contain any sequence of bytes -that does not contain <tt>LF</tt>. The <tt>LF</tt> after the command is optional. +<div class="paragraph"><p>The <code><any></code> part of the command may contain any sequence of bytes +that does not contain <code>LF</code>. The <code>LF</code> after the command is optional. Callers may wish to process the output through a tool such as sed to remove the leading part of the line, for example:</p></div> <div class="exampleblock"> <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>frontend | git fast-import | sed 's/^progress //'</tt></pre> +<pre><code>frontend | git fast-import | sed 's/^progress //'</code></pre> </div></div> </div></div> -<div class="paragraph"><p>Placing a <tt>progress</tt> command immediately after a <tt>checkpoint</tt> will -inform the reader when the <tt>checkpoint</tt> has been completed and it +<div class="paragraph"><p>Placing a <code>progress</code> command immediately after a <code>checkpoint</code> will +inform the reader when the <code>checkpoint</code> has been completed and it can safely access the refs that fast-import updated.</p></div> </div> <div class="sect2"> -<h3 id="_tt_cat_blob_tt"><tt>cat-blob</tt></h3> +<h3 id="_code_cat_blob_code"><code>cat-blob</code></h3> <div class="paragraph"><p>Causes fast-import to print a blob to a file descriptor previously -arranged with the <tt>--cat-blob-fd</tt> argument. The command otherwise +arranged with the <code>--cat-blob-fd</code> argument. The command otherwise has no impact on the current import; its main purpose is to retrieve blobs that may be in fast-import’s memory but not accessible from the target repository.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'cat-blob' SP <dataref> LF</tt></pre> +<pre><code> 'cat-blob' SP <dataref> LF</code></pre> </div></div> -<div class="paragraph"><p>The <tt><dataref></tt> can be either a mark reference (<tt>:<idnum></tt>) +<div class="paragraph"><p>The <code><dataref></code> can be either a mark reference (<code>:<idnum></code>) set previously or a full 40-byte SHA-1 of a Git blob, preexisting or ready to be written.</p></div> -<div class="paragraph"><p>Output uses the same format as <tt>git cat-file --batch</tt>:</p></div> +<div class="paragraph"><p>Output uses the same format as <code>git cat-file --batch</code>:</p></div> <div class="exampleblock"> <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt><sha1> SP 'blob' SP <size> LF -<contents> LF</tt></pre> +<pre><code><sha1> SP 'blob' SP <size> LF +<contents> LF</code></pre> </div></div> </div></div> <div class="paragraph"><p>This command can be used anywhere in the stream that comments are -accepted. In particular, the <tt>cat-blob</tt> command can be used in the -middle of a commit but not in the middle of a <tt>data</tt> command.</p></div> +accepted. In particular, the <code>cat-blob</code> command can be used in the +middle of a commit but not in the middle of a <code>data</code> command.</p></div> <div class="paragraph"><p>See “Responses To Commands” below for details about how to read this output safely.</p></div> </div> <div class="sect2"> -<h3 id="_tt_ls_tt"><tt>ls</tt></h3> +<h3 id="_code_ls_code"><code>ls</code></h3> <div class="paragraph"><p>Prints information about the object at a path to a file descriptor -previously arranged with the <tt>--cat-blob-fd</tt> argument. This allows -printing a blob from the active commit (with <tt>cat-blob</tt>) or copying a +previously arranged with the <code>--cat-blob-fd</code> argument. This allows +printing a blob from the active commit (with <code>cat-blob</code>) or copying a blob or tree from a previous commit for use in the current one (with -<tt>filemodify</tt>).</p></div> -<div class="paragraph"><p>The <tt>ls</tt> command can be used anywhere in the stream that comments are +<code>filemodify</code>).</p></div> +<div class="paragraph"><p>The <code>ls</code> command can be used anywhere in the stream that comments are accepted, including the middle of a commit.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> @@ -1905,13 +1903,13 @@ </dt> <dd> <p> - This form can only be used in the middle of a <tt>commit</tt>. + This form can only be used in the middle of a <code>commit</code>. The path names a directory entry within fast-import’s active commit. The path must be quoted in this case. </p> <div class="literalblock"> <div class="content"> -<pre><tt> 'ls' SP <path> LF</tt></pre> +<pre><code> 'ls' SP <path> LF</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -1919,25 +1917,25 @@ </dt> <dd> <p> - The <tt><dataref></tt> can be a mark reference (<tt>:<idnum></tt>) or the + The <code><dataref></code> can be a mark reference (<code>:<idnum></code>) or the full 40-byte SHA-1 of a Git tag, commit, or tree object, preexisting or waiting to be written. The path is relative to the top level of the tree - named by <tt><dataref></tt>. + named by <code><dataref></code>. </p> <div class="literalblock"> <div class="content"> -<pre><tt> 'ls' SP <dataref> SP <path> LF</tt></pre> +<pre><code> 'ls' SP <dataref> SP <path> LF</code></pre> </div></div> </dd> </dl></div> -<div class="paragraph"><p>See <tt>filemodify</tt> above for a detailed description of <tt><path></tt>.</p></div> -<div class="paragraph"><p>Output uses the same format as <tt>git ls-tree <tree> -- <path></tt>:</p></div> +<div class="paragraph"><p>See <code>filemodify</code> above for a detailed description of <code><path></code>.</p></div> +<div class="paragraph"><p>Output uses the same format as <code>git ls-tree <tree> -- <path></code>:</p></div> <div class="exampleblock"> <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt><mode> SP ('blob' | 'tree' | 'commit') SP <dataref> HT <path> LF</tt></pre> +<pre><code><mode> SP ('blob' | 'tree' | 'commit') SP <dataref> HT <path> LF</code></pre> </div></div> </div></div> <div class="paragraph"><p>The <dataref> represents the blob, tree, or commit object at <path> @@ -1948,19 +1946,19 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>missing SP <path> LF</tt></pre> +<pre><code>missing SP <path> LF</code></pre> </div></div> </div></div> <div class="paragraph"><p>See “Responses To Commands” below for details about how to read this output safely.</p></div> </div> <div class="sect2"> -<h3 id="_tt_feature_tt"><tt>feature</tt></h3> +<h3 id="_code_feature_code"><code>feature</code></h3> <div class="paragraph"><p>Require that fast-import supports the specified feature, or abort if it does not.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'feature' SP <feature> ('=' <argument>)? LF</tt></pre> +<pre><code> 'feature' SP <feature> ('=' <argument>)? LF</code></pre> </div></div> <div class="paragraph"><p>The <feature> part of the command may be any one of the following:</p></div> <div class="dlist"><dl> @@ -2046,16 +2044,16 @@ </dl></div> </div> <div class="sect2"> -<h3 id="_tt_option_tt"><tt>option</tt></h3> +<h3 id="_code_option_code"><code>option</code></h3> <div class="paragraph"><p>Processes the specified option so that git fast-import behaves in a way that suits the frontend’s needs. Note that options specified by the frontend are overridden by any options the user may specify to git fast-import itself.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> 'option' SP <option> LF</tt></pre> +<pre><code> 'option' SP <option> LF</code></pre> </div></div> -<div class="paragraph"><p>The <tt><option></tt> part of the command may contain any of the options +<div class="paragraph"><p>The <code><option></code> part of the command may contain any of the options listed in the OPTIONS section that do not change import semantics, without the leading <em>--</em> and is treated in the same way.</p></div> <div class="paragraph"><p>Option commands must be the first commands on the input (not counting @@ -2092,11 +2090,11 @@ </ul></div> </div> <div class="sect2"> -<h3 id="_tt_done_tt"><tt>done</tt></h3> -<div class="paragraph"><p>If the <tt>done</tt> feature is not in use, treated as if EOF was read. +<h3 id="_code_done_code"><code>done</code></h3> +<div class="paragraph"><p>If the <code>done</code> feature is not in use, treated as if EOF was read. This can be used to tell fast-import to finish early.</p></div> -<div class="paragraph"><p>If the <tt>--done</tt> command-line option or <tt>feature done</tt> command is -in use, the <tt>done</tt> command is mandatory and marks the end of the +<div class="paragraph"><p>If the <code>--done</code> command-line option or <code>feature done</code> command is +in use, the <code>done</code> command is mandatory and marks the end of the stream.</p></div> </div> </div> @@ -2120,15 +2118,15 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>mkfifo fast-import-output +<pre><code>mkfifo fast-import-output frontend <fast-import-output | -git fast-import >fast-import-output</tt></pre> +git fast-import >fast-import-output</code></pre> </div></div> </div></div> -<div class="paragraph"><p>A frontend set up this way can use <tt>progress</tt>, <tt>ls</tt>, and <tt>cat-blob</tt> +<div class="paragraph"><p>A frontend set up this way can use <code>progress</code>, <code>ls</code>, and <code>cat-blob</code> commands to read information from the import in progress.</p></div> <div class="paragraph"><p>To avoid deadlock, such frontends must completely consume any -pending output from <tt>progress</tt>, <tt>ls</tt>, and <tt>cat-blob</tt> before +pending output from <code>progress</code>, <code>ls</code>, and <code>cat-blob</code> before performing writes to fast-import that might block.</p></div> </div> </div> @@ -2158,7 +2156,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>$ cat >in <<END_OF_INPUT +<pre><code>$ cat >in <<END_OF_INPUT # my very first test commit commit refs/heads/master committer Shawn O. Pearce <spearce> 19283 -0400 @@ -2171,29 +2169,29 @@ .gitignore EOF M 777 inline bob -END_OF_INPUT</tt></pre> +END_OF_INPUT</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git fast-import <in +<pre><code>$ git fast-import <in fatal: Corrupt mode: M 777 inline bob -fast-import: dumping crash report to .git/fast_import_crash_8434</tt></pre> +fast-import: dumping crash report to .git/fast_import_crash_8434</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ cat .git/fast_import_crash_8434 +<pre><code>$ cat .git/fast_import_crash_8434 fast-import crash report: fast-import process: 8434 parent process : 1391 - at Sat Sep 1 00:58:12 2007</tt></pre> + at Sat Sep 1 00:58:12 2007</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>fatal: Corrupt mode: M 777 inline bob</tt></pre> +<pre><code>fatal: Corrupt mode: M 777 inline bob</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Most Recent Commands Before Crash +<pre><code>Most Recent Commands Before Crash --------------------------------- # my very first test commit commit refs/heads/master @@ -2202,23 +2200,23 @@ data <<EOF M 644 inline .gitignore data <<EOF -* M 777 inline bob</tt></pre> +* M 777 inline bob</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Active Branch LRU +<pre><code>Active Branch LRU ----------------- - active_branches = 1 cur, 5 max</tt></pre> + active_branches = 1 cur, 5 max</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>pos clock name +<pre><code>pos clock name ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 1) 0 refs/heads/master</tt></pre> + 1) 0 refs/heads/master</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Inactive Branches +<pre><code>Inactive Branches ----------------- refs/heads/master: status : active loaded dirty @@ -2226,12 +2224,12 @@ old tree : 0000000000000000000000000000000000000000 cur tree : 0000000000000000000000000000000000000000 commit clock: 0 - last pack :</tt></pre> + last pack :</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>------------------- -END OF CRASH REPORT</tt></pre> +<pre><code>------------------- +END OF CRASH REPORT</code></pre> </div></div> </div></div> </div> @@ -2244,7 +2242,7 @@ <div class="sect2"> <h3 id="_use_one_mark_per_commit">Use One Mark Per Commit</h3> <div class="paragraph"><p>When doing a repository conversion, use a unique mark per commit -(<tt>mark :<n></tt>) and supply the --export-marks option on the command +(<code>mark :<n></code>) and supply the --export-marks option on the command line. fast-import will dump a file which lists every mark and the Git object SHA-1 that corresponds to it. If the frontend can tie the marks back to the source repository, it is easy to verify the @@ -2278,21 +2276,21 @@ tags which are a subset of the files available in the repository.</p></div> <div class="paragraph"><p>Importing these tags as-is in Git is impossible without making at least one commit which “fixes up” the files to match the content -of the tag. Use fast-import’s <tt>reset</tt> command to reset a dummy branch +of the tag. Use fast-import’s <code>reset</code> command to reset a dummy branch outside of your normal branch space to the base commit for the tag, then commit one or more file fixup commits, and finally tag the dummy branch.</p></div> -<div class="paragraph"><p>For example since all normal branches are stored under <tt>refs/heads/</tt> -name the tag fixup branch <tt>TAG_FIXUP</tt>. This way it is impossible for +<div class="paragraph"><p>For example since all normal branches are stored under <code>refs/heads/</code> +name the tag fixup branch <code>TAG_FIXUP</code>. This way it is impossible for the fixup branch used by the importer to have namespace conflicts -with real branches imported from the source (the name <tt>TAG_FIXUP</tt> -is not <tt>refs/heads/TAG_FIXUP</tt>).</p></div> -<div class="paragraph"><p>When committing fixups, consider using <tt>merge</tt> to connect the +with real branches imported from the source (the name <code>TAG_FIXUP</code> +is not <code>refs/heads/TAG_FIXUP</code>).</p></div> +<div class="paragraph"><p>When committing fixups, consider using <code>merge</code> to connect the commit(s) which are supplying file revisions to the fixup branch. Doing so will allow tools such as <em>git blame</em> to track through the real commit history and properly annotate the source files.</p></div> -<div class="paragraph"><p>After fast-import terminates the frontend will need to do <tt>rm .git/TAG_FIXUP</tt> +<div class="paragraph"><p>After fast-import terminates the frontend will need to do <code>rm .git/TAG_FIXUP</code> to remove the dummy branch.</p></div> </div> <div class="sect2"> @@ -2322,7 +2320,7 @@ </div> <div class="sect2"> <h3 id="_include_some_progress_messages">Include Some Progress Messages</h3> -<div class="paragraph"><p>Every once in a while have your frontend emit a <tt>progress</tt> message +<div class="paragraph"><p>Every once in a while have your frontend emit a <code>progress</code> message to fast-import. The contents of the messages are entirely free-form, so one suggestion would be to output the current month and year each time the current commit date moves into the next month. @@ -2342,10 +2340,10 @@ <div class="paragraph"><p>Frontends which have efficient access to all revisions of a single file (for example reading an RCS/CVS ,v file) can choose to supply all revisions of that file as a sequence of consecutive -<tt>blob</tt> commands. This allows fast-import to deltify the different file +<code>blob</code> commands. This allows fast-import to deltify the different file revisions against each other, saving space in the final packfile. Marks can be used to later identify individual file revisions during -a sequence of <tt>commit</tt> commands.</p></div> +a sequence of <code>commit</code> commands.</p></div> <div class="paragraph"><p>The packfile(s) created by fast-import do not encourage good disk access patterns. This is caused by fast-import writing the data in the order it is received on standard input, while Git typically organizes @@ -2353,9 +2351,9 @@ appear before historical data. Git also clusters commits together, speeding up revision traversal through better cache locality.</p></div> <div class="paragraph"><p>For this reason it is strongly recommended that users repack the -repository with <tt>git repack -a -d</tt> after fast-import completes, allowing +repository with <code>git repack -a -d</code> after fast-import completes, allowing Git to reorganize the packfiles for faster data access. If blob -deltas are suboptimal (see above) then also adding the <tt>-f</tt> option +deltas are suboptimal (see above) then also adding the <code>-f</code> option to force recomputation of all deltas can significantly reduce the final packfile size (30-50% smaller can be quite typical).</p></div> </div> @@ -2401,16 +2399,16 @@ of memory.</p></div> <div class="paragraph"><p>Active branches have the same overhead as inactive branches, but also contain copies of every tree that has been recently modified on -that branch. If subtree <tt>include</tt> has not been modified since the +that branch. If subtree <code>include</code> has not been modified since the branch became active, its contents will not be loaded into memory, -but if subtree <tt>src</tt> has been modified by a commit since the branch +but if subtree <code>src</code> has been modified by a commit since the branch became active, then its contents will be loaded in memory.</p></div> <div class="paragraph"><p>As active branches store metadata about the files contained on that branch, their in-memory storage size can grow to a considerable size (see below).</p></div> <div class="paragraph"><p>fast-import automatically moves active branches to inactive status based on a simple least-recently-used algorithm. The LRU chain is updated on -each <tt>commit</tt> command. The maximum number of active branches can be +each <code>commit</code> command. The maximum number of active branches can be increased or decreased on the command line with --active-branches=.</p></div> </div> <div class="sect2"> @@ -2438,7 +2436,7 @@ <h2 id="_signals">Signals</h2> <div class="sectionbody"> <div class="paragraph"><p>Sending <strong>SIGUSR1</strong> to the <em>git fast-import</em> process ends the current -packfile early, simulating a <tt>checkpoint</tt> command. The impatient +packfile early, simulating a <code>checkpoint</code> command. The impatient operator can use this facility to peek at the objects and refs from an import in progress, at the cost of some added running time and worse compression.</p></div>
diff --git a/git-fetch-pack.html b/git-fetch-pack.html index 4ee2783..e03c178 100644 --- a/git-fetch-pack.html +++ b/git-fetch-pack.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-fetch-pack(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-fetch.html b/git-fetch.html index 0d479e3..9582e4d 100644 --- a/git-fetch.html +++ b/git-fetch.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-fetch(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -776,10 +774,10 @@ or from several repositories at once if <group> is given and there is a remotes.<group> entry in the configuration file. (See <a href="git-config.html">git-config(1)</a>).</p></div> -<div class="paragraph"><p>When no remote is specified, by default the <tt>origin</tt> remote will be used, +<div class="paragraph"><p>When no remote is specified, by default the <code>origin</code> remote will be used, unless there’s an upstream branch configured for the current branch.</p></div> <div class="paragraph"><p>The names of refs that are fetched, together with the object names -they point at, are written to <tt>.git/FETCH_HEAD</tt>. This information +they point at, are written to <code>.git/FETCH_HEAD</code>. This information may be used by scripts or other git commands, such as <a href="git-pull.html">git-pull(1)</a>.</p></div> </div> </div> @@ -804,8 +802,8 @@ <dd> <p> Append ref names and object names of fetched refs to the - existing contents of <tt>.git/FETCH_HEAD</tt>. Without this - option old data in <tt>.git/FETCH_HEAD</tt> will be overwritten. + existing contents of <code>.git/FETCH_HEAD</code>. Without this + option old data in <code>.git/FETCH_HEAD</code> will be overwritten. </p> </dd> <dt class="hdlist1"> @@ -814,7 +812,7 @@ <dd> <p> Deepen or shorten the history of a <em>shallow</em> repository created by - <tt>git clone</tt> with <tt>--depth=<depth></tt> option (see <a href="git-clone.html">git-clone(1)</a>) + <code>git clone</code> with <code>--depth=<depth></code> option (see <a href="git-clone.html">git-clone(1)</a>) to the specified number of commits from the tip of each remote branch history. Tags for the deepened commits are not fetched. </p> @@ -837,7 +835,7 @@ <dd> <p> By default when fetching from a shallow repository, - <tt>git fetch</tt> refuses refs that require updating + <code>git fetch</code> refuses refs that require updating .git/shallow. This option updates .git/shallow and accept such refs. </p> @@ -858,10 +856,10 @@ </dt> <dd> <p> - When <em>git fetch</em> is used with <tt><rbranch>:<lbranch></tt> + When <em>git fetch</em> is used with <code><rbranch>:<lbranch></code> refspec, it refuses to update the local branch - <tt><lbranch></tt> unless the remote branch <tt><rbranch></tt> it - fetches is a descendant of <tt><lbranch></tt>. This option + <code><lbranch></code> unless the remote branch <code><rbranch></code> it + fetches is a descendant of <code><lbranch></code>. This option overrides that check. </p> </dd> @@ -926,7 +924,7 @@ When fetching refs listed on the command line, use the specified refspec (can be given more than once) to map the refs to remote-tracking branches, instead of the values of - <tt>remote.*.fetch</tt> configuration variables for the remote + <code>remote.*.fetch</code> configuration variables for the remote repository. See section on "Configured Remote-tracking Branches" for details. </p> @@ -940,7 +938,7 @@ <dd> <p> Fetch all tags from the remote (i.e., fetch remote tags - <tt>refs/tags/*</tt> into local tags with the same name), in addition + <code>refs/tags/*</code> into local tags with the same name), in addition to whatever else would otherwise be fetched. Using this option alone does not subject tags to pruning, even if --prune is used (though tags may be pruned anyway if they are also the @@ -1085,19 +1083,19 @@ <p> Specifies which refs to fetch and which local refs to update. When no <refspec>s appear on the command line, the refs to fetch - are read from <tt>remote.<repository>.fetch</tt> variables instead + are read from <code>remote.<repository>.fetch</code> variables instead (see <a href="#CRTB">CONFIGURED REMOTE-TRACKING BRANCHES</a> below). </p> <div class="paragraph"><p>The format of a <refspec> parameter is an optional plus -<tt>+</tt>, followed by the source ref <src>, followed -by a colon <tt>:</tt>, followed by the destination ref <dst>. +<code>+</code>, followed by the source ref <src>, followed +by a colon <code>:</code>, followed by the destination ref <dst>. The colon can be omitted when <dst> is empty.</p></div> -<div class="paragraph"><p><tt>tag <tag></tt> means the same as <tt>refs/tags/<tag>:refs/tags/<tag></tt>; +<div class="paragraph"><p><code>tag <tag></code> means the same as <code>refs/tags/<tag>:refs/tags/<tag></code>; it requests fetching everything up to the given tag.</p></div> <div class="paragraph"><p>The remote ref that matches <src> is fetched, and if <dst> is not empty string, the local ref that matches it is fast-forwarded using <src>. -If the optional plus <tt>+</tt> is used, the local ref +If the optional plus <code>+</code> is used, the local ref is updated even if it does not result in a fast-forward update.</p></div> <div class="admonitionblock"> @@ -1110,7 +1108,7 @@ its new tip will not be descendant of its previous tip (as stored in your remote-tracking branch the last time you fetched). You would want -to use the <tt>+</tt> sign to indicate non-fast-forward updates +to use the <code>+</code> sign to indicate non-fast-forward updates will be needed for such branches. There is no way to determine or declare that a branch will be made available in a repository with this behavior; the pulling user simply @@ -1172,8 +1170,8 @@ </ul></div> <div class="paragraph"><p>This syntax is only recognized if there are no slashes before the first colon. This helps differentiate a local path that contains a -colon. For example the local path <tt>foo:bar</tt> could be specified as an -absolute path or <tt>./foo:bar</tt> to avoid being misinterpreted as an ssh +colon. For example the local path <code>foo:bar</code> could be specified as an +absolute path or <code>./foo:bar</code> to avoid being misinterpreted as an ssh url.</p></div> <div class="paragraph"><p>The ssh and git protocols additionally support ~username expansion:</p></div> <div class="ulist"><ul> @@ -1230,15 +1228,15 @@ configuration section of the form:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "<actual url base>"] - insteadOf = <other url base></tt></pre> +<pre><code> [url "<actual url base>"] + insteadOf = <other url base></code></pre> </div></div> <div class="paragraph"><p>For example, with this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "git://git.host.xz/"] +<pre><code> [url "git://git.host.xz/"] insteadOf = host.xz:/path/to/ - insteadOf = work:</tt></pre> + insteadOf = work:</code></pre> </div></div> <div class="paragraph"><p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p></div> @@ -1246,14 +1244,14 @@ configuration section of the form:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "<actual url base>"] - pushInsteadOf = <other url base></tt></pre> +<pre><code> [url "<actual url base>"] + pushInsteadOf = <other url base></code></pre> </div></div> <div class="paragraph"><p>For example, with this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "ssh://example.org/"] - pushInsteadOf = git://example.org/</tt></pre> +<pre><code> [url "ssh://example.org/"] + pushInsteadOf = git://example.org/</code></pre> </div></div> <div class="paragraph"><p>a URL like "git://example.org/path/to/repo.git" will be rewritten to "ssh://example.org/path/to/repo.git" for pushes, but pulls will still @@ -1264,21 +1262,21 @@ <h2 id="_remotes_a_id_remotes_a">REMOTES<a id="REMOTES"></a></h2> <div class="sectionbody"> <div class="paragraph"><p>The name of one of the following can be used instead -of a URL as <tt><repository></tt> argument:</p></div> +of a URL as <code><repository></code> argument:</p></div> <div class="ulist"><ul> <li> <p> -a remote in the Git configuration file: <tt>$GIT_DIR/config</tt>, +a remote in the Git configuration file: <code>$GIT_DIR/config</code>, </p> </li> <li> <p> -a file in the <tt>$GIT_DIR/remotes</tt> directory, or +a file in the <code>$GIT_DIR/remotes</code> directory, or </p> </li> <li> <p> -a file in the <tt>$GIT_DIR/branches</tt> directory. +a file in the <code>$GIT_DIR/branches</code> directory. </p> </li> </ul></div> @@ -1288,65 +1286,65 @@ <h3 id="_named_remote_in_configuration_file">Named remote in configuration file</h3> <div class="paragraph"><p>You can choose to provide the name of a remote which you had previously configured using <a href="git-remote.html">git-remote(1)</a>, <a href="git-config.html">git-config(1)</a> -or even by a manual edit to the <tt>$GIT_DIR/config</tt> file. The URL of +or even by a manual edit to the <code>$GIT_DIR/config</code> file. The URL of this remote will be used to access the repository. The refspec of this remote will be used by default when you do not provide a refspec on the command line. The entry in the config file would appear like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [remote "<name>"] +<pre><code> [remote "<name>"] url = <url> pushurl = <pushurl> push = <refspec> - fetch = <refspec></tt></pre> + fetch = <refspec></code></pre> </div></div> -<div class="paragraph"><p>The <tt><pushurl></tt> is used for pushes only. It is optional and defaults -to <tt><url></tt>.</p></div> +<div class="paragraph"><p>The <code><pushurl></code> is used for pushes only. It is optional and defaults +to <code><url></code>.</p></div> </div> <div class="sect2"> -<h3 id="_named_file_in_tt_git_dir_remotes_tt">Named file in <tt>$GIT_DIR/remotes</tt></h3> +<h3 id="_named_file_in_code_git_dir_remotes_code">Named file in <code>$GIT_DIR/remotes</code></h3> <div class="paragraph"><p>You can choose to provide the name of a -file in <tt>$GIT_DIR/remotes</tt>. The URL +file in <code>$GIT_DIR/remotes</code>. The URL in this file will be used to access the repository. The refspec in this file will be used as default when you do not provide a refspec on the command line. This file should have the following format:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> URL: one of the above URL format +<pre><code> URL: one of the above URL format Push: <refspec> - Pull: <refspec></tt></pre> + Pull: <refspec></code></pre> </div></div> -<div class="paragraph"><p><tt>Push:</tt> lines are used by <em>git push</em> and -<tt>Pull:</tt> lines are used by <em>git pull</em> and <em>git fetch</em>. -Multiple <tt>Push:</tt> and <tt>Pull:</tt> lines may +<div class="paragraph"><p><code>Push:</code> lines are used by <em>git push</em> and +<code>Pull:</code> lines are used by <em>git pull</em> and <em>git fetch</em>. +Multiple <code>Push:</code> and <code>Pull:</code> lines may be specified for additional branch mappings.</p></div> </div> <div class="sect2"> -<h3 id="_named_file_in_tt_git_dir_branches_tt">Named file in <tt>$GIT_DIR/branches</tt></h3> +<h3 id="_named_file_in_code_git_dir_branches_code">Named file in <code>$GIT_DIR/branches</code></h3> <div class="paragraph"><p>You can choose to provide the name of a -file in <tt>$GIT_DIR/branches</tt>. +file in <code>$GIT_DIR/branches</code>. The URL in this file will be used to access the repository. This file should have the following format:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> <url>#<head></tt></pre> +<pre><code> <url>#<head></code></pre> </div></div> -<div class="paragraph"><p><tt><url></tt> is required; <tt>#<head></tt> is optional.</p></div> +<div class="paragraph"><p><code><url></code> is required; <code>#<head></code> is optional.</p></div> <div class="paragraph"><p>Depending on the operation, git will use one of the following refspecs, if you don’t provide one on the command line. -<tt><branch></tt> is the name of this file in <tt>$GIT_DIR/branches</tt> and -<tt><head></tt> defaults to <tt>master</tt>.</p></div> +<code><branch></code> is the name of this file in <code>$GIT_DIR/branches</code> and +<code><head></code> defaults to <code>master</code>.</p></div> <div class="paragraph"><p>git fetch uses:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> refs/heads/<head>:refs/heads/<branch></tt></pre> +<pre><code> refs/heads/<head>:refs/heads/<branch></code></pre> </div></div> <div class="paragraph"><p>git push uses:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> HEAD:refs/heads/<head></tt></pre> +<pre><code> HEAD:refs/heads/<head></code></pre> </div></div> </div> </div> @@ -1356,43 +1354,43 @@ <div class="sectionbody"> <div class="paragraph"><p>You often interact with the same remote repository by regularly and repeatedly fetching from it. In order to keep track -of the progress of such a remote repository, <tt>git fetch</tt> allows you -to configure <tt>remote.<repository>.fetch</tt> configuration variables.</p></div> +of the progress of such a remote repository, <code>git fetch</code> allows you +to configure <code>remote.<repository>.fetch</code> configuration variables.</p></div> <div class="paragraph"><p>Typically such a variable may look like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[remote "origin"] - fetch = +refs/heads/*:refs/remotes/origin/*</tt></pre> +<pre><code>[remote "origin"] + fetch = +refs/heads/*:refs/remotes/origin/*</code></pre> </div></div> <div class="paragraph"><p>This configuration is used in two ways:</p></div> <div class="ulist"><ul> <li> <p> -When <tt>git fetch</tt> is run without specifying what branches - and/or tags to fetch on the command line, e.g. <tt>git fetch origin</tt> - or <tt>git fetch</tt>, <tt>remote.<repository>.fetch</tt> values are used as +When <code>git fetch</code> is run without specifying what branches + and/or tags to fetch on the command line, e.g. <code>git fetch origin</code> + or <code>git fetch</code>, <code>remote.<repository>.fetch</code> values are used as the refspecs---they specify which refs to fetch and which local refs to update. The example above will fetch - all branches that exist in the <tt>origin</tt> (i.e. any ref that matches - the left-hand side of the value, <tt>refs/heads/*</tt>) and update the - corresponding remote-tracking branches in the <tt>refs/remotes/origin/*</tt> + all branches that exist in the <code>origin</code> (i.e. any ref that matches + the left-hand side of the value, <code>refs/heads/*</code>) and update the + corresponding remote-tracking branches in the <code>refs/remotes/origin/*</code> hierarchy. </p> </li> <li> <p> -When <tt>git fetch</tt> is run with explicit branches and/or tags - to fetch on the command line, e.g. <tt>git fetch origin master</tt>, the +When <code>git fetch</code> is run with explicit branches and/or tags + to fetch on the command line, e.g. <code>git fetch origin master</code>, the <refspec>s given on the command line determine what are to be - fetched (e.g. <tt>master</tt> in the example, - which is a short-hand for <tt>master:</tt>, which in turn means + fetched (e.g. <code>master</code> in the example, + which is a short-hand for <code>master:</code>, which in turn means "fetch the <em>master</em> branch but I do not explicitly say what remote-tracking branch to update with it from the command line"), and the example command will - fetch <em>only</em> the <em>master</em> branch. The <tt>remote.<repository>.fetch</tt> + fetch <em>only</em> the <em>master</em> branch. The <code>remote.<repository>.fetch</code> values determine which remote-tracking branch, if any, is updated. When used in this - way, the <tt>remote.<repository>.fetch</tt> values do not have any + way, the <code>remote.<repository>.fetch</code> values do not have any effect in deciding <em>what</em> gets fetched (i.e. the values are not used as refspecs when the command-line lists refspecs); they are only used to decide <em>where</em> the refs that are fetched are stored @@ -1400,8 +1398,8 @@ </p> </li> </ul></div> -<div class="paragraph"><p>The latter use of the <tt>remote.<repository>.fetch</tt> values can be -overridden by giving the <tt>--refmap=<refspec></tt> parameter(s) on the +<div class="paragraph"><p>The latter use of the <code>remote.<repository>.fetch</code> values can be +overridden by giving the <code>--refmap=<refspec></code> parameter(s) on the command line.</p></div> </div> </div> @@ -1415,7 +1413,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git fetch origin</tt></pre> +<pre><code>$ git fetch origin</code></pre> </div></div> <div class="paragraph"><p>The above command copies all branches from the remote refs/heads/ namespace and stores them to the local refs/remotes/origin/ namespace, @@ -1428,13 +1426,13 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git fetch origin +pu:pu maint:tmp</tt></pre> +<pre><code>$ git fetch origin +pu:pu maint:tmp</code></pre> </div></div> -<div class="paragraph"><p>This updates (or creates, as necessary) branches <tt>pu</tt> and <tt>tmp</tt> in +<div class="paragraph"><p>This updates (or creates, as necessary) branches <code>pu</code> and <code>tmp</code> in the local repository by fetching from the branches (respectively) -<tt>pu</tt> and <tt>maint</tt> from the remote repository.</p></div> -<div class="paragraph"><p>The <tt>pu</tt> branch will be updated even if it is does not fast-forward, -because it is prefixed with a plus sign; <tt>tmp</tt> will not be.</p></div> +<code>pu</code> and <code>maint</code> from the remote repository.</p></div> +<div class="paragraph"><p>The <code>pu</code> branch will be updated even if it is does not fast-forward, +because it is prefixed with a plus sign; <code>tmp</code> will not be.</p></div> </li> <li> <p> @@ -1443,12 +1441,12 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git fetch git://git.kernel.org/pub/scm/git/git.git maint -$ git log FETCH_HEAD</tt></pre> +<pre><code>$ git fetch git://git.kernel.org/pub/scm/git/git.git maint +$ git log FETCH_HEAD</code></pre> </div></div> -<div class="paragraph"><p>The first command fetches the <tt>maint</tt> branch from the repository at -<tt>git://git.kernel.org/pub/scm/git/git.git</tt> and the second command uses -<tt>FETCH_HEAD</tt> to examine the branch with <a href="git-log.html">git-log(1)</a>. The fetched +<div class="paragraph"><p>The first command fetches the <code>maint</code> branch from the repository at +<code>git://git.kernel.org/pub/scm/git/git.git</code> and the second command uses +<code>FETCH_HEAD</code> to examine the branch with <a href="git-log.html">git-log(1)</a>. The fetched objects will eventually be removed by git’s built-in housekeeping (see <a href="git-gc.html">git-gc(1)</a>).</p></div> </li>
diff --git a/git-filter-branch.html b/git-filter-branch.html index dbcf7a6..32ea257 100644 --- a/git-filter-branch.html +++ b/git-filter-branch.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-filter-branch(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -776,8 +774,8 @@ changes, which would normally have no effect. Nevertheless, this may be useful in the future for compensating for some Git bugs or such, therefore such a usage is permitted.</p></div> -<div class="paragraph"><p><strong>NOTE</strong>: This command honors <tt>.git/info/grafts</tt> file and refs in -the <tt>refs/replace/</tt> namespace. +<div class="paragraph"><p><strong>NOTE</strong>: This command honors <code>.git/info/grafts</code> file and refs in +the <code>refs/replace/</code> namespace. If you have any grafts or replacement refs defined, running this command will make them permanent.</p></div> <div class="paragraph"><p><strong>WARNING</strong>! The rewritten history will have different object names for all @@ -852,8 +850,8 @@ <p> This is the filter for rewriting the index. It is similar to the tree filter but does not check out the tree, which makes it much - faster. Frequently used with <tt>git rm --cached - --ignore-unmatch ...</tt>, see EXAMPLES below. For hairy + faster. Frequently used with <code>git rm --cached + --ignore-unmatch ...</code>, see EXAMPLES below. For hairy cases, see <a href="git-update-index.html">git-update-index(1)</a>. </p> </dd> @@ -899,8 +897,8 @@ convenience functions, too. For example, calling <em>skip_commit "$@"</em> will leave out the current commit (but not its changes! If you want that, use <em>git rebase</em> instead).</p></div> -<div class="paragraph"><p>You can also use the <tt>git_commit_non_empty_tree "$@"</tt> instead of -<tt>git commit-tree "$@"</tt> if you don’t wish to keep commits with a single parent +<div class="paragraph"><p>You can also use the <code>git_commit_non_empty_tree "$@"</code> instead of +<code>git commit-tree "$@"</code> if you don’t wish to keep commits with a single parent and that makes no change to the tree.</p></div> </dd> <dt class="hdlist1"> @@ -950,7 +948,7 @@ and only one parent, it will hence keep merges points. Also, this option is not compatible with the use of <em>--commit-filter</em>. Though you just need to use the function <em>git_commit_non_empty_tree "$@"</em> instead - of the <tt>git commit-tree "$@"</tt> idiom in your commit filter to make that + of the <code>git commit-tree "$@"</code> idiom in your commit filter to make that happen. </p> </dd> @@ -1018,36 +1016,36 @@ or copyright violation) from all commits:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch --tree-filter 'rm filename' HEAD</tt></pre> +<pre><code>git filter-branch --tree-filter 'rm filename' HEAD</code></pre> </div></div> <div class="paragraph"><p>However, if the file is absent from the tree of some commit, -a simple <tt>rm filename</tt> will fail for that tree and commit. -Thus you may instead want to use <tt>rm -f filename</tt> as the script.</p></div> -<div class="paragraph"><p>Using <tt>--index-filter</tt> with <em>git rm</em> yields a significantly faster -version. Like with using <tt>rm filename</tt>, <tt>git rm --cached filename</tt> +a simple <code>rm filename</code> will fail for that tree and commit. +Thus you may instead want to use <code>rm -f filename</code> as the script.</p></div> +<div class="paragraph"><p>Using <code>--index-filter</code> with <em>git rm</em> yields a significantly faster +version. Like with using <code>rm filename</code>, <code>git rm --cached filename</code> will fail if the file is absent from the tree of a commit. If you want to "completely forget" a file, it does not matter when it entered -history, so we also add <tt>--ignore-unmatch</tt>:</p></div> +history, so we also add <code>--ignore-unmatch</code>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD</tt></pre> +<pre><code>git filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD</code></pre> </div></div> <div class="paragraph"><p>Now, you will get the rewritten history saved in HEAD.</p></div> -<div class="paragraph"><p>To rewrite the repository to look as if <tt>foodir/</tt> had been its project +<div class="paragraph"><p>To rewrite the repository to look as if <code>foodir/</code> had been its project root, and discard all other history:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch --subdirectory-filter foodir -- --all</tt></pre> +<pre><code>git filter-branch --subdirectory-filter foodir -- --all</code></pre> </div></div> <div class="paragraph"><p>Thus you can, e.g., turn a library subdirectory into a repository of -its own. Note the <tt>--</tt> that separates <em>filter-branch</em> options from -revision options, and the <tt>--all</tt> to rewrite all branches and tags.</p></div> +its own. Note the <code>--</code> that separates <em>filter-branch</em> options from +revision options, and the <code>--all</code> to rewrite all branches and tags.</p></div> <div class="paragraph"><p>To set a commit (which typically is at the tip of another history) to be the parent of the current initial commit, in order to paste the other history behind the current history:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch --parent-filter 'sed "s/^\$/-p <graft-id>/"' HEAD</tt></pre> +<pre><code>git filter-branch --parent-filter 'sed "s/^\$/-p <graft-id>/"' HEAD</code></pre> </div></div> <div class="paragraph"><p>(if the parent string is empty - which happens when we are dealing with the initial commit - add graftcommit as a parent). Note that this assumes @@ -1055,30 +1053,30 @@ happened). If this is not the case, use:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch --parent-filter \ - 'test $GIT_COMMIT = <commit-id> && echo "-p <graft-id>" || cat' HEAD</tt></pre> +<pre><code>git filter-branch --parent-filter \ + 'test $GIT_COMMIT = <commit-id> && echo "-p <graft-id>" || cat' HEAD</code></pre> </div></div> <div class="paragraph"><p>or even simpler:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>echo "$commit-id $graft-id" >> .git/info/grafts -git filter-branch $graft-id..HEAD</tt></pre> +<pre><code>echo "$commit-id $graft-id" >> .git/info/grafts +git filter-branch $graft-id..HEAD</code></pre> </div></div> <div class="paragraph"><p>To remove commits authored by "Darl McBribe" from the history:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch --commit-filter ' +<pre><code>git filter-branch --commit-filter ' if [ "$GIT_AUTHOR_NAME" = "Darl McBribe" ]; then skip_commit "$@"; else git commit-tree "$@"; - fi' HEAD</tt></pre> + fi' HEAD</code></pre> </div></div> <div class="paragraph"><p>The function <em>skip_commit</em> is defined as follows:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>skip_commit() +<pre><code>skip_commit() { shift; while [ -n "$1" ]; @@ -1087,7 +1085,7 @@ map "$1"; shift; done; -}</tt></pre> +}</code></pre> </div></div> <div class="paragraph"><p>The shift magic first throws away the tree id and then the -p parameters. Note that this handles merges properly! In case Darl @@ -1098,31 +1096,31 @@ by subsequent commits, will still be in the rewritten branch. If you want to throw out <em>changes</em> together with the commits, you should use the interactive mode of <em>git rebase</em>.</p></div> -<div class="paragraph"><p>You can rewrite the commit log messages using <tt>--msg-filter</tt>. For +<div class="paragraph"><p>You can rewrite the commit log messages using <code>--msg-filter</code>. For example, <em>git svn-id</em> strings in a repository created by <em>git svn</em> can be removed this way:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch --msg-filter ' +<pre><code>git filter-branch --msg-filter ' sed -e "/^git-svn-id:/d" -'</tt></pre> +'</code></pre> </div></div> <div class="paragraph"><p>If you need to add <em>Acked-by</em> lines to, say, the last 10 commits (none of which is a merge), use this command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch --msg-filter ' +<pre><code>git filter-branch --msg-filter ' cat && echo "Acked-by: Bugs Bunny <bunny@bugzilla.org>" -' HEAD~10..HEAD</tt></pre> +' HEAD~10..HEAD</code></pre> </div></div> -<div class="paragraph"><p>The <tt>--env-filter</tt> option can be used to modify committer and/or author +<div class="paragraph"><p>The <code>--env-filter</code> option can be used to modify committer and/or author identity. For example, if you found out that your commits have the wrong identity due to a misconfigured user.email, you can make a correction, before publishing the project, like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch --env-filter ' +<pre><code>git filter-branch --env-filter ' if test "$GIT_AUTHOR_EMAIL" = "root@localhost" then GIT_AUTHOR_EMAIL=john@example.com @@ -1133,7 +1131,7 @@ GIT_COMMITTER_EMAIL=john@example.com export GIT_COMMITTER_EMAIL fi -' -- --all</tt></pre> +' -- --all</code></pre> </div></div> <div class="paragraph"><p>To restrict rewriting to only part of the history, specify a revision range in addition to the new branch name. The new branch name will @@ -1142,29 +1140,29 @@ <div class="paragraph"><p>Consider this history:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> D--E--F--G--H +<pre><code> D--E--F--G--H / / -A--B-----C</tt></pre> +A--B-----C</code></pre> </div></div> <div class="paragraph"><p>To rewrite only commits D,E,F,G,H, but leave A, B and C alone, use:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch ... C..H</tt></pre> +<pre><code>git filter-branch ... C..H</code></pre> </div></div> <div class="paragraph"><p>To rewrite commits E,F,G,H, use one of these:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch ... C..H --not D -git filter-branch ... D..H --not C</tt></pre> +<pre><code>git filter-branch ... C..H --not D +git filter-branch ... D..H --not C</code></pre> </div></div> <div class="paragraph"><p>To move the whole tree into a subdirectory, or remove it from there:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git filter-branch --index-filter \ +<pre><code>git filter-branch --index-filter \ 'git ls-files -s | sed "s-\t\"*-&newsubdir/-" | GIT_INDEX_FILE=$GIT_INDEX_FILE.new \ git update-index --index-info && - mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"' HEAD</tt></pre> + mv "$GIT_INDEX_FILE.new" "$GIT_INDEX_FILE"' HEAD</code></pre> </div></div> </div> </div> @@ -1172,8 +1170,8 @@ <h2 id="_checklist_for_shrinking_a_repository">Checklist for Shrinking a Repository</h2> <div class="sectionbody"> <div class="paragraph"><p>git-filter-branch can be used to get rid of a subset of files, -usually with some combination of <tt>--index-filter</tt> and -<tt>--subdirectory-filter</tt>. People expect the resulting repository to +usually with some combination of <code>--index-filter</code> and +<code>--subdirectory-filter</code>. People expect the resulting repository to be smaller than the original, but you need a few more steps to actually make it smaller, because Git tries hard not to lose your objects until you tell it to. First make sure that:</p></div> @@ -1181,13 +1179,13 @@ <li> <p> You really removed all variants of a filename, if a blob was moved - over its lifetime. <tt>git log --name-only --follow --all -- filename</tt> + over its lifetime. <code>git log --name-only --follow --all -- filename</code> can help you find renames. </p> </li> <li> <p> -You really filtered all refs: use <tt>--tag-name-filter cat -- --all</tt> +You really filtered all refs: use <code>--tag-name-filter cat -- --all</code> when calling git-filter-branch. </p> </li> @@ -1197,7 +1195,7 @@ <div class="ulist"><ul> <li> <p> -Clone it with <tt>git clone file:///path/to/repo</tt>. The clone +Clone it with <code>git clone file:///path/to/repo</code>. The clone will not have the removed objects. See <a href="git-clone.html">git-clone(1)</a>. (Note that cloning with a plain path just hardlinks everything!) </p> @@ -1210,21 +1208,21 @@ <div class="ulist"><ul> <li> <p> -Remove the original refs backed up by git-filter-branch: say <tt>git +Remove the original refs backed up by git-filter-branch: say <code>git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git - update-ref -d</tt>. + update-ref -d</code>. </p> </li> <li> <p> -Expire all reflogs with <tt>git reflog expire --expire=now --all</tt>. +Expire all reflogs with <code>git reflog expire --expire=now --all</code>. </p> </li> <li> <p> -Garbage collect all unreferenced objects with <tt>git gc --prune=now</tt> +Garbage collect all unreferenced objects with <code>git gc --prune=now</code> (or if your git-gc is not new enough to support arguments to - <tt>--prune</tt>, use <tt>git repack -ad; git prune</tt> instead). + <code>--prune</code>, use <code>git repack -ad; git prune</code> instead). </p> </li> </ul></div> @@ -1267,7 +1265,7 @@ The <a href="http://rtyley.github.io/bfg-repo-cleaner/#examples">command options</a> are much more restrictive than git-filter branch, and dedicated just to the tasks of removing unwanted data- e.g: - <tt>--strip-blobs-bigger-than 1M</tt>. + <code>--strip-blobs-bigger-than 1M</code>. </p> </li> </ul></div>
diff --git a/git-fmt-merge-msg.html b/git-fmt-merge-msg.html index 99ec040..8666cce 100644 --- a/git-fmt-merge-msg.html +++ b/git-fmt-merge-msg.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-fmt-merge-msg(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -778,7 +776,7 @@ In addition to branch names, populate the log message with one-line descriptions from the actual commits that are being merged. At most <n> commits from each merge parent will be - used (20 if <n> is omitted). This overrides the <tt>merge.log</tt> + used (20 if <n> is omitted). This overrides the <code>merge.log</code> configuration variable. </p> </dd> @@ -809,7 +807,7 @@ <dd> <p> Use <message> instead of the branch names for the first line - of the log message. For use with <tt>--log</tt>. + of the log message. For use with <code>--log</code>. </p> </dd> <dt class="hdlist1"> @@ -857,7 +855,7 @@ </dt> <dd> <p> - Synonym to <tt>merge.log</tt>; this is deprecated and will be removed in + Synonym to <code>merge.log</code>; this is deprecated and will be removed in the future. </p> </dd>
diff --git a/git-for-each-ref.html b/git-for-each-ref.html index 543bbeb..ad99966 100644 --- a/git-for-each-ref.html +++ b/git-for-each-ref.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-for-each-ref(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -759,10 +757,10 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>Iterate over all refs that match <tt><pattern></tt> and show them -according to the given <tt><format></tt>, after sorting them according -to the given set of <tt><key></tt>. If <tt><count></tt> is given, stop after -showing that many refs. The interpolated values in <tt><format></tt> +<div class="paragraph"><p>Iterate over all refs that match <code><pattern></code> and show them +according to the given <code><format></code>, after sorting them according +to the given set of <code><key></code>. If <code><count></code> is given, stop after +showing that many refs. The interpolated values in <code><format></code> can optionally be quoted as string literals in the specified host language allowing their direct evaluation in that language.</p></div> </div> @@ -777,7 +775,7 @@ <dd> <p> By default the command shows all refs that match - <tt><pattern></tt>. This option makes it stop after showing + <code><pattern></code>. This option makes it stop after showing that many refs. </p> </dd> @@ -786,9 +784,9 @@ </dt> <dd> <p> - A field name to sort on. Prefix <tt>-</tt> to sort in + A field name to sort on. Prefix <code>-</code> to sort in descending order of the value. When unspecified, - <tt>refname</tt> is used. You may use the --sort=<key> option + <code>refname</code> is used. You may use the --sort=<key> option multiple times, in which case the last key becomes the primary key. </p> @@ -798,16 +796,16 @@ </dt> <dd> <p> - A string that interpolates <tt>%(fieldname)</tt> from the - object pointed at by a ref being shown. If <tt>fieldname</tt> - is prefixed with an asterisk (<tt>*</tt>) and the ref points + A string that interpolates <code>%(fieldname)</code> from the + object pointed at by a ref being shown. If <code>fieldname</code> + is prefixed with an asterisk (<code>*</code>) and the ref points at a tag object, the value for the field in the object tag refers is used. When unspecified, defaults to - <tt>%(objectname) SPC %(objecttype) TAB %(refname)</tt>. - It also interpolates <tt>%%</tt> to <tt>%</tt>, and <tt>%xx</tt> where <tt>xx</tt> + <code>%(objectname) SPC %(objecttype) TAB %(refname)</code>. + It also interpolates <code>%%</code> to <code>%</code>, and <code>%xx</code> where <code>xx</code> are hex digits interpolates to character with hex code - <tt>xx</tt>; for example <tt>%00</tt> interpolates to <tt>\0</tt> (NUL), - <tt>%09</tt> to <tt>\t</tt> (TAB) and <tt>%0a</tt> to <tt>\n</tt> (LF). + <code>xx</code>; for example <code>%00</code> interpolates to <code>\0</code> (NUL), + <code>%09</code> to <code>\t</code> (TAB) and <code>%0a</code> to <code>\n</code> (LF). </p> </dd> <dt class="hdlist1"> @@ -835,7 +833,7 @@ </dt> <dd> <p> - If given, strings that substitute <tt>%(fieldname)</tt> + If given, strings that substitute <code>%(fieldname)</code> placeholders are quoted as string literals suitable for the specified host language. This is meant to produce a scriptlet that can directly be `eval`ed. @@ -858,7 +856,7 @@ <dd> <p> The name of the ref (the part after $GIT_DIR/). - For a non-ambiguous short name of the ref append <tt>:short</tt>. + For a non-ambiguous short name of the ref append <code>:short</code>. The option core.warnAmbiguousRefs is used to select the strict abbreviation mode. </p> @@ -868,7 +866,7 @@ </dt> <dd> <p> - The type of the object (<tt>blob</tt>, <tt>tree</tt>, <tt>commit</tt>, <tt>tag</tt>). + The type of the object (<code>blob</code>, <code>tree</code>, <code>commit</code>, <code>tag</code>). </p> </dd> <dt class="hdlist1"> @@ -885,7 +883,7 @@ <dd> <p> The object name (aka SHA-1). - For a non-ambiguous abbreviation of the object name append <tt>:short</tt>. + For a non-ambiguous abbreviation of the object name append <code>:short</code>. </p> </dd> <dt class="hdlist1"> @@ -894,9 +892,9 @@ <dd> <p> The name of a local ref which can be considered “upstream” - from the displayed ref. Respects <tt>:short</tt> in the same way as - <tt>refname</tt> above. Additionally respects <tt>:track</tt> to show - "[ahead N, behind M]" and <tt>:trackshort</tt> to show the terse + from the displayed ref. Respects <code>:short</code> in the same way as + <code>refname</code> above. Additionally respects <code>:track</code> to show + "[ahead N, behind M]" and <code>:trackshort</code> to show the terse version: ">" (ahead), "<" (behind), "<>" (ahead and behind), or "=" (in sync). Has no effect if the ref does not have tracking information associated with it. @@ -916,32 +914,32 @@ </dt> <dd> <p> - Change output color. Followed by <tt>:<colorname></tt>, where names - are described in <tt>color.branch.*</tt>. + Change output color. Followed by <code>:<colorname></code>, where names + are described in <code>color.branch.*</code>. </p> </dd> </dl></div> <div class="paragraph"><p>In addition to the above, for commit and tag objects, the header -field names (<tt>tree</tt>, <tt>parent</tt>, <tt>object</tt>, <tt>type</tt>, and <tt>tag</tt>) can +field names (<code>tree</code>, <code>parent</code>, <code>object</code>, <code>type</code>, and <code>tag</code>) can be used to specify the value in the header field.</p></div> -<div class="paragraph"><p>Fields that have name-email-date tuple as its value (<tt>author</tt>, -<tt>committer</tt>, and <tt>tagger</tt>) can be suffixed with <tt>name</tt>, <tt>email</tt>, -and <tt>date</tt> to extract the named component.</p></div> -<div class="paragraph"><p>The complete message in a commit and tag object is <tt>contents</tt>. -Its first line is <tt>contents:subject</tt>, where subject is the concatenation +<div class="paragraph"><p>Fields that have name-email-date tuple as its value (<code>author</code>, +<code>committer</code>, and <code>tagger</code>) can be suffixed with <code>name</code>, <code>email</code>, +and <code>date</code> to extract the named component.</p></div> +<div class="paragraph"><p>The complete message in a commit and tag object is <code>contents</code>. +Its first line is <code>contents:subject</code>, where subject is the concatenation of all lines of the commit message up to the first blank line. The next line is <em>contents:body</em>, where body is all of the lines after the first -blank line. Finally, the optional GPG signature is <tt>contents:signature</tt>.</p></div> +blank line. Finally, the optional GPG signature is <code>contents:signature</code>.</p></div> <div class="paragraph"><p>For sorting purposes, fields with numeric values sort in numeric -order (<tt>objectsize</tt>, <tt>authordate</tt>, <tt>committerdate</tt>, <tt>taggerdate</tt>). +order (<code>objectsize</code>, <code>authordate</code>, <code>committerdate</code>, <code>taggerdate</code>). All other fields are used to sort in their byte-value order.</p></div> <div class="paragraph"><p>In any case, a field name that refers to a field inapplicable to the object referred by the ref does not cause an error. It returns an empty string instead.</p></div> <div class="paragraph"><p>As a special case for the date-type fields, you may specify a format for -the date by adding one of <tt>:default</tt>, <tt>:relative</tt>, <tt>:short</tt>, <tt>:local</tt>, -<tt>:iso8601</tt>, <tt>:rfc2822</tt> or <tt>:raw</tt> to the end of the fieldname; e.g. -<tt>%(taggerdate:relative)</tt>.</p></div> +the date by adding one of <code>:default</code>, <code>:relative</code>, <code>:short</code>, <code>:local</code>, +<code>:iso8601</code>, <code>:rfc2822</code> or <code>:raw</code> to the end of the fieldname; e.g. +<code>%(taggerdate:relative)</code>.</p></div> </div> </div> <div class="sect1"> @@ -951,7 +949,7 @@ 3 tagged commits:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>#!/bin/sh +<pre><code>#!/bin/sh git for-each-ref --count=3 --sort='-*authordate' \ --format='From: %(*authorname) %(*authoremail) @@ -960,26 +958,26 @@ Ref: %(*refname) %(*body) -' 'refs/tags'</tt></pre> +' 'refs/tags'</code></pre> </div></div> <div class="paragraph"><p>A simple example showing the use of shell eval on the output, demonstrating the use of --shell. List the prefixes of all heads:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>#!/bin/sh +<pre><code>#!/bin/sh git for-each-ref --shell --format="ref=%(refname)" refs/heads | \ while read entry do eval "$entry" echo `dirname $ref` -done</tt></pre> +done</code></pre> </div></div> <div class="paragraph"><p>A bit more elaborate report on tags, demonstrating that the format may be an entire script:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>#!/bin/sh +<pre><code>#!/bin/sh fmt=' r=%(refname) @@ -1025,7 +1023,7 @@ --sort='*objecttype' \ --sort=-taggerdate \ refs/tags` -eval "$eval"</tt></pre> +eval "$eval"</code></pre> </div></div> </div> </div>
diff --git a/git-format-patch.html b/git-format-patch.html index e91882a..1b0bf44 100644 --- a/git-format-patch.html +++ b/git-format-patch.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-format-patch(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -795,26 +793,26 @@ </ol></div> <div class="paragraph"><p>The first rule takes precedence in the case of a single <commit>. To apply the second rule, i.e., format everything since the beginning of -history up until <commit>, use the <em>--root</em> option: <tt>git format-patch ---root <commit></tt>. If you want to format only <commit> itself, you -can do this with <tt>git format-patch -1 <commit></tt>.</p></div> +history up until <commit>, use the <em>--root</em> option: <code>git format-patch +--root <commit></code>. If you want to format only <commit> itself, you +can do this with <code>git format-patch -1 <commit></code>.</p></div> <div class="paragraph"><p>By default, each output file is numbered sequentially from 1, and uses the first line of the commit message (massaged for pathname safety) as -the filename. With the <tt>--numbered-files</tt> option, the output file names +the filename. With the <code>--numbered-files</code> option, the output file names will only be numbers, without the first line of the commit appended. The names of the output files are printed to standard -output, unless the <tt>--stdout</tt> option is specified.</p></div> -<div class="paragraph"><p>If <tt>-o</tt> is specified, output files are created in <dir>. Otherwise +output, unless the <code>--stdout</code> option is specified.</p></div> +<div class="paragraph"><p>If <code>-o</code> is specified, output files are created in <dir>. Otherwise they are created in the current working directory.</p></div> <div class="paragraph"><p>By default, the subject of a single patch is "[PATCH] " followed by the concatenation of lines from the commit message up to the first blank line (see the DISCUSSION section of <a href="git-commit.html">git-commit(1)</a>).</p></div> <div class="paragraph"><p>When multiple patches are output, the subject prefix will instead be -"[PATCH n/m] ". To force 1/1 to be added for a single patch, use <tt>-n</tt>. -To omit patch numbers from the subject, use <tt>-N</tt>.</p></div> -<div class="paragraph"><p>If given <tt>--thread</tt>, <tt>git-format-patch</tt> will generate <tt>In-Reply-To</tt> and -<tt>References</tt> headers to make the second and subsequent patch mails appear -as replies to the first mail; this also generates a <tt>Message-Id</tt> header to +"[PATCH n/m] ". To force 1/1 to be added for a single patch, use <code>-n</code>. +To omit patch numbers from the subject, use <code>-N</code>.</p></div> +<div class="paragraph"><p>If given <code>--thread</code>, <code>git-format-patch</code> will generate <code>In-Reply-To</code> and +<code>References</code> headers to make the second and subsequent patch mails appear +as replies to the first mail; this also generates a <code>Message-Id</code> header to reference.</p></div> </div> </div> @@ -841,8 +839,8 @@ </dt> <dd> <p> - Suppress diff output. Useful for commands like <tt>git show</tt> that - show the patch by default, or to cancel the effect of <tt>--patch</tt>. + Suppress diff output. Useful for commands like <code>git show</code> that + show the patch by default, or to cancel the effect of <code>--patch</code>. </p> </dd> <dt class="hdlist1"> @@ -893,7 +891,7 @@ <div class="content"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>default</tt>, <tt>myers</tt> +<code>default</code>, <code>myers</code> </dt> <dd> <p> @@ -901,7 +899,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>minimal</tt> +<code>minimal</code> </dt> <dd> <p> @@ -910,7 +908,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>patience</tt> +<code>patience</code> </dt> <dd> <p> @@ -918,7 +916,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>histogram</tt> +<code>histogram</code> </dt> <dd> <p> @@ -930,7 +928,7 @@ </div></div> <div class="paragraph"><p>For instance, if you configured diff.algorithm variable to a non-default value and want to use the default one, then you -have to use <tt>--diff-algorithm=default</tt> option.</p></div> +have to use <code>--diff-algorithm=default</code> option.</p></div> </dd> <dt class="hdlist1"> --stat[=<width>[,<name-width>[,<count>]]] @@ -941,29 +939,29 @@ will be used for the filename part, and the rest for the graph part. Maximum width defaults to terminal width, or 80 columns if not connected to a terminal, and can be overridden by - <tt><width></tt>. The width of the filename part can be limited by - giving another width <tt><name-width></tt> after a comma. The width + <code><width></code>. The width of the filename part can be limited by + giving another width <code><name-width></code> after a comma. The width of the graph part can be limited by using - <tt>--stat-graph-width=<width></tt> (affects all commands generating - a stat graph) or by setting <tt>diff.statGraphWidth=<width></tt> - (does not affect <tt>git format-patch</tt>). - By giving a third parameter <tt><count></tt>, you can limit the - output to the first <tt><count></tt> lines, followed by <tt>...</tt> if + <code>--stat-graph-width=<width></code> (affects all commands generating + a stat graph) or by setting <code>diff.statGraphWidth=<width></code> + (does not affect <code>git format-patch</code>). + By giving a third parameter <code><count></code>, you can limit the + output to the first <code><count></code> lines, followed by <code>...</code> if there are more. </p> -<div class="paragraph"><p>These parameters can also be set individually with <tt>--stat-width=<width></tt>, -<tt>--stat-name-width=<name-width></tt> and <tt>--stat-count=<count></tt>.</p></div> +<div class="paragraph"><p>These parameters can also be set individually with <code>--stat-width=<width></code>, +<code>--stat-name-width=<name-width></code> and <code>--stat-count=<count></code>.</p></div> </dd> <dt class="hdlist1"> --numstat </dt> <dd> <p> - Similar to <tt>--stat</tt>, but shows number of added and + Similar to <code>--stat</code>, but shows number of added and deleted lines in decimal notation and pathname without abbreviation, to make it more machine friendly. For - binary files, outputs two <tt>-</tt> instead of saying - <tt>0 0</tt>. + binary files, outputs two <code>-</code> instead of saying + <code>0 0</code>. </p> </dd> <dt class="hdlist1"> @@ -971,7 +969,7 @@ </dt> <dd> <p> - Output only the last line of the <tt>--stat</tt> format containing total + Output only the last line of the <code>--stat</code> format containing total number of modified files, as well as number of added and deleted lines. </p> @@ -982,9 +980,9 @@ <dd> <p> Output the distribution of relative amount of changes for each - sub-directory. The behavior of <tt>--dirstat</tt> can be customized by + sub-directory. The behavior of <code>--dirstat</code> can be customized by passing it a comma separated list of parameters. - The defaults are controlled by the <tt>diff.dirstat</tt> configuration + The defaults are controlled by the <code>diff.dirstat</code> configuration variable (see <a href="git-config.html">git-config(1)</a>). The following parameters are available: </p> @@ -992,7 +990,7 @@ <div class="content"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>changes</tt> +<code>changes</code> </dt> <dd> <p> @@ -1004,39 +1002,39 @@ </p> </dd> <dt class="hdlist1"> -<tt>lines</tt> +<code>lines</code> </dt> <dd> <p> Compute the dirstat numbers by doing the regular line-based diff analysis, and summing the removed/added line counts. (For binary files, count 64-byte chunks instead, since binary files have no - natural concept of lines). This is a more expensive <tt>--dirstat</tt> - behavior than the <tt>changes</tt> behavior, but it does count rearranged + natural concept of lines). This is a more expensive <code>--dirstat</code> + behavior than the <code>changes</code> behavior, but it does count rearranged lines within a file as much as other changes. The resulting output - is consistent with what you get from the other <tt>--*stat</tt> options. + is consistent with what you get from the other <code>--*stat</code> options. </p> </dd> <dt class="hdlist1"> -<tt>files</tt> +<code>files</code> </dt> <dd> <p> Compute the dirstat numbers by counting the number of files changed. Each changed file counts equally in the dirstat analysis. This is - the computationally cheapest <tt>--dirstat</tt> behavior, since it does + the computationally cheapest <code>--dirstat</code> behavior, since it does not have to look at the file contents at all. </p> </dd> <dt class="hdlist1"> -<tt>cumulative</tt> +<code>cumulative</code> </dt> <dd> <p> Count changes in a child directory for the parent directory as well. - Note that when using <tt>cumulative</tt>, the sum of the percentages + Note that when using <code>cumulative</code>, the sum of the percentages reported may exceed 100%. The default (non-cumulative) behavior can - be specified with the <tt>noncumulative</tt> parameter. + be specified with the <code>noncumulative</code> parameter. </p> </dd> <dt class="hdlist1"> @@ -1054,7 +1052,7 @@ <div class="paragraph"><p>Example: The following will count changed files, while ignoring directories with less than 10% of the total amount of changed files, and accumulating child directory counts in the parent directories: -<tt>--dirstat=files,10,cumulative</tt>.</p></div> +<code>--dirstat=files,10,cumulative</code>.</p></div> </dd> <dt class="hdlist1"> --summary @@ -1089,8 +1087,8 @@ </dt> <dd> <p> - In addition to <tt>--full-index</tt>, output a binary diff that - can be applied with <tt>git-apply</tt>. + In addition to <code>--full-index</code>, output a binary diff that + can be applied with <code>git-apply</code>. </p> </dd> <dt class="hdlist1"> @@ -1101,9 +1099,9 @@ Instead of showing the full 40-byte hexadecimal object name in diff-raw format output and diff-tree header lines, show only a partial prefix. This is - independent of the <tt>--full-index</tt> option above, which controls + independent of the <code>--full-index</code> option above, which controls the diff-patch output format. Non default number of - digits can be specified with <tt>--abbrev=<n></tt>. + digits can be specified with <code>--abbrev=<n></code>. </p> </dd> <dt class="hdlist1"> @@ -1121,15 +1119,15 @@ not as a series of deletion and insertion mixed together with a very few lines that happen to match textually as the context, but as a single deletion of everything old followed by a single insertion of -everything new, and the number <tt>m</tt> controls this aspect of the -B -option (defaults to 60%). <tt>-B/70%</tt> specifies that less than 30% of the +everything new, and the number <code>m</code> controls this aspect of the -B +option (defaults to 60%). <code>-B/70%</code> specifies that less than 30% of the original should remain in the result for Git to consider it a total rewrite (i.e. otherwise the resulting patch will be a series of deletion and insertion mixed together with context lines).</p></div> <div class="paragraph"><p>When used with -M, a totally-rewritten file is also considered as the source of a rename (usually -M only considers a file that disappeared -as the source of a rename), and the number <tt>n</tt> controls this aspect of -the -B option (defaults to 50%). <tt>-B20%</tt> specifies that a change with +as the source of a rename), and the number <code>n</code> controls this aspect of +the -B option (defaults to 50%). <code>-B20%</code> specifies that a change with addition and deletion compared to 20% or more of the file’s size are eligible for being picked up as a possible source of a rename to another file.</p></div> @@ -1143,15 +1141,15 @@ <dd> <p> Detect renames. - If <tt>n</tt> is specified, it is a threshold on the similarity + If <code>n</code> is specified, it is a threshold on the similarity index (i.e. amount of addition/deletions compared to the - file’s size). For example, <tt>-M90%</tt> means Git should consider a + file’s size). For example, <code>-M90%</code> means Git should consider a delete/add pair to be a rename if more than 90% of the file - hasn’t changed. Without a <tt>%</tt> sign, the number is to be read as - a fraction, with a decimal point before it. I.e., <tt>-M5</tt> becomes - 0.5, and is thus the same as <tt>-M50%</tt>. Similarly, <tt>-M05</tt> is - the same as <tt>-M5%</tt>. To limit detection to exact renames, use - <tt>-M100%</tt>. The default similarity index is 50%. + hasn’t changed. Without a <code>%</code> sign, the number is to be read as + a fraction, with a decimal point before it. I.e., <code>-M5</code> becomes + 0.5, and is thus the same as <code>-M50%</code>. Similarly, <code>-M05</code> is + the same as <code>-M5%</code>. To limit detection to exact renames, use + <code>-M100%</code>. The default similarity index is 50%. </p> </dd> <dt class="hdlist1"> @@ -1162,8 +1160,8 @@ </dt> <dd> <p> - Detect copies as well as renames. See also <tt>--find-copies-harder</tt>. - If <tt>n</tt> is specified, it has the same meaning as for <tt>-M<n></tt>. + Detect copies as well as renames. See also <code>--find-copies-harder</code>. + If <code>n</code> is specified, it has the same meaning as for <code>-M<n></code>. </p> </dd> <dt class="hdlist1"> @@ -1171,13 +1169,13 @@ </dt> <dd> <p> - For performance reasons, by default, <tt>-C</tt> option finds copies only + For performance reasons, by default, <code>-C</code> option finds copies only if the original file of the copy was modified in the same changeset. This flag makes the command inspect unmodified files as candidates for the source of copy. This is a very expensive operation for large projects, so use it with caution. Giving more than one - <tt>-C</tt> option has the same effect. + <code>-C</code> option has the same effect. </p> </dd> <dt class="hdlist1"> @@ -1189,14 +1187,14 @@ <dd> <p> Omit the preimage for deletes, i.e. print only the header but not - the diff between the preimage and <tt>/dev/null</tt>. The resulting patch - is not meant to be applied with <tt>patch</tt> or <tt>git apply</tt>; this is + the diff between the preimage and <code>/dev/null</code>. The resulting patch + is not meant to be applied with <code>patch</code> or <code>git apply</code>; this is solely for people who want to just concentrate on reviewing the text after the change. In addition, the output obviously lack enough information to apply such a patch in reverse, even manually, hence the name of the option. </p> -<div class="paragraph"><p>When used together with <tt>-B</tt>, omit also the preimage in the deletion part +<div class="paragraph"><p>When used together with <code>-B</code>, omit also the preimage in the deletion part of a delete/create pair.</p></div> </dd> <dt class="hdlist1"> @@ -1204,7 +1202,7 @@ </dt> <dd> <p> - The <tt>-M</tt> and <tt>-C</tt> options require O(n^2) processing time where n + The <code>-M</code> and <code>-C</code> options require O(n^2) processing time where n is the number of potential rename/copy targets. This option prevents rename/copy detection from running if the number of rename/copy targets exceeds the specified @@ -1218,9 +1216,9 @@ <p> Output the patch in the order specified in the <orderfile>, which has one shell glob pattern per line. - This overrides the <tt>diff.orderfile</tt> configuration variable - (see <a href="git-config.html">git-config(1)</a>). To cancel <tt>diff.orderfile</tt>, - use <tt>-O/dev/null</tt>. + This overrides the <code>diff.orderfile</code> configuration variable + (see <a href="git-config.html">git-config(1)</a>). To cancel <code>diff.orderfile</code>, + use <code>-O/dev/null</code>. </p> </dd> <dt class="hdlist1"> @@ -1457,7 +1455,7 @@ </dt> <dd> <p> - Add <tt>Signed-off-by:</tt> line to the commit message, using + Add <code>Signed-off-by:</code> line to the commit message, using the committer identity of yourself. </p> </dd> @@ -1477,7 +1475,7 @@ <p> Create multipart/mixed attachment, the first part of which is the commit message and the patch itself in the - second part, with <tt>Content-Disposition: attachment</tt>. + second part, with <code>Content-Disposition: attachment</code>. </p> </dd> <dt class="hdlist1"> @@ -1496,7 +1494,7 @@ <p> Create multipart/mixed attachment, the first part of which is the commit message and the patch itself in the - second part, with <tt>Content-Disposition: inline</tt>. + second part, with <code>Content-Disposition: inline</code>. </p> </dd> <dt class="hdlist1"> @@ -1507,29 +1505,29 @@ </dt> <dd> <p> - Controls addition of <tt>In-Reply-To</tt> and <tt>References</tt> headers to + Controls addition of <code>In-Reply-To</code> and <code>References</code> headers to make the second and subsequent mails appear as replies to the - first. Also controls generation of the <tt>Message-Id</tt> header to + first. Also controls generation of the <code>Message-Id</code> header to reference. </p> -<div class="paragraph"><p>The optional <style> argument can be either <tt>shallow</tt> or <tt>deep</tt>. +<div class="paragraph"><p>The optional <style> argument can be either <code>shallow</code> or <code>deep</code>. <em>shallow</em> threading makes every mail a reply to the head of the series, where the head is chosen from the cover letter, the -<tt>--in-reply-to</tt>, and the first patch mail, in this order. <em>deep</em> +<code>--in-reply-to</code>, and the first patch mail, in this order. <em>deep</em> threading makes every mail a reply to the previous one.</p></div> -<div class="paragraph"><p>The default is <tt>--no-thread</tt>, unless the <em>format.thread</em> configuration -is set. If <tt>--thread</tt> is specified without a style, it defaults to the -style specified by <em>format.thread</em> if any, or else <tt>shallow</tt>.</p></div> +<div class="paragraph"><p>The default is <code>--no-thread</code>, unless the <em>format.thread</em> configuration +is set. If <code>--thread</code> is specified without a style, it defaults to the +style specified by <em>format.thread</em> if any, or else <code>shallow</code>.</p></div> <div class="paragraph"><p>Beware that the default for <em>git send-email</em> is to thread emails -itself. If you want <tt>git format-patch</tt> to take care of threading, you -will want to ensure that threading is disabled for <tt>git send-email</tt>.</p></div> +itself. If you want <code>git format-patch</code> to take care of threading, you +will want to ensure that threading is disabled for <code>git send-email</code>.</p></div> </dd> <dt class="hdlist1"> --in-reply-to=Message-Id </dt> <dd> <p> - Make the first mail (or all the mails with <tt>--no-thread</tt>) appear as a + Make the first mail (or all the mails with <code>--no-thread</code>) appear as a reply to the given Message-Id, which avoids breaking threads to provide a new patch series. </p> @@ -1554,7 +1552,7 @@ Instead of the standard <em>[PATCH]</em> prefix in the subject line, instead use <em>[<Subject-Prefix>]</em>. This allows for useful naming of a patch series, and can be - combined with the <tt>--numbered</tt> option. + combined with the <code>--numbered</code> option. </p> </dd> <dt class="hdlist1"> @@ -1566,10 +1564,10 @@ <dd> <p> Mark the series as the <n>-th iteration of the topic. The - output filenames have <tt>v<n></tt> pretended to them, and the + output filenames have <code>v<n></code> pretended to them, and the subject prefix ("PATCH" by default, but configurable via the - <tt>--subject-prefix</tt> option) has ` v<n>` appended to it. E.g. - <tt>--reroll-count=4</tt> may produce <tt>v4-0001-add-makefile.patch</tt> + <code>--subject-prefix</code> option) has ` v<n>` appended to it. E.g. + <code>--reroll-count=4</code> may produce <code>v4-0001-add-makefile.patch</code> file that has "Subject: [PATCH v4 1/20] Add makefile" in it. </p> </dd> @@ -1578,9 +1576,9 @@ </dt> <dd> <p> - Add a <tt>To:</tt> header to the email headers. This is in addition + Add a <code>To:</code> header to the email headers. This is in addition to any configured headers, and may be used multiple times. - The negated form <tt>--no-to</tt> discards all <tt>To:</tt> headers added so + The negated form <code>--no-to</code> discards all <code>To:</code> headers added so far (from config or command line). </p> </dd> @@ -1589,9 +1587,9 @@ </dt> <dd> <p> - Add a <tt>Cc:</tt> header to the email headers. This is in addition + Add a <code>Cc:</code> header to the email headers. This is in addition to any configured headers, and may be used multiple times. - The negated form <tt>--no-cc</tt> discards all <tt>Cc:</tt> headers added so + The negated form <code>--no-cc</code> discards all <code>Cc:</code> headers added so far (from config or command line). </p> </dd> @@ -1603,18 +1601,18 @@ </dt> <dd> <p> - Use <tt>ident</tt> in the <tt>From:</tt> header of each commit email. If the + Use <code>ident</code> in the <code>From:</code> header of each commit email. If the author ident of the commit is not textually identical to the - provided <tt>ident</tt>, place a <tt>From:</tt> header in the body of the - message with the original author. If no <tt>ident</tt> is given, use + provided <code>ident</code>, place a <code>From:</code> header in the body of the + message with the original author. If no <code>ident</code> is given, use the committer ident. </p> <div class="paragraph"><p>Note that this option is only useful if you are actually sending the emails and want to identify yourself as the sender, but retain the -original author (and <tt>git am</tt> will correctly pick up the in-body -header). Note also that <tt>git send-email</tt> already handles this +original author (and <code>git am</code> will correctly pick up the in-body +header). Note also that <code>git send-email</code> already handles this transformation for you, and this option should not be used if you are -feeding the result to <tt>git send-email</tt>.</p></div> +feeding the result to <code>git send-email</code>.</p></div> </dd> <dt class="hdlist1"> --add-header=<header> @@ -1623,9 +1621,9 @@ <p> Add an arbitrary header to the email headers. This is in addition to any configured headers, and may be used multiple times. - For example, <tt>--add-header="Organization: git-foo"</tt>. - The negated form <tt>--no-add-header</tt> discards <strong>all</strong> (<tt>To:</tt>, - <tt>Cc:</tt>, and custom) headers added so far from config or command + For example, <code>--add-header="Organization: git-foo"</code>. + The negated form <code>--no-add-header</code> discards <strong>all</strong> (<code>To:</code>, + <code>Cc:</code>, and custom) headers added so far from config or command line. </p> </dd> @@ -1650,9 +1648,9 @@ <div class="paragraph"><p>The expected use case of this is to write supporting explanation for the commit that does not belong to the commit log message proper, and include it with the patch submission. While one can simply write -these explanations after <tt>format-patch</tt> has run but before sending, +these explanations after <code>format-patch</code> has run but before sending, keeping them as Git notes allows them to be maintained between versions -of the patch series (but see the discussion of the <tt>notes.rewrite</tt> +of the patch series (but see the discussion of the <code>notes.rewrite</code> configuration options in <a href="git-notes.html">git-notes(1)</a> to use this workflow).</p></div> </dd> <dt class="hdlist1"> @@ -1679,13 +1677,13 @@ </dt> <dd> <p> - Instead of using <tt>.patch</tt> as the suffix for generated + Instead of using <code>.patch</code> as the suffix for generated filenames, use specified suffix. A common alternative is - <tt>--suffix=.txt</tt>. Leaving this empty will remove the <tt>.patch</tt> + <code>--suffix=.txt</code>. Leaving this empty will remove the <code>.patch</code> suffix. </p> <div class="paragraph"><p>Note that the leading character does not have to be a dot; for example, -you can use <tt>--suffix=-patch</tt> to get <tt>0001-description-of-my-change-patch</tt>.</p></div> +you can use <code>--suffix=-patch</code> to get <code>0001-description-of-my-change-patch</code>.</p></div> </dd> <dt class="hdlist1"> -q @@ -1733,7 +1731,7 @@ attachments, and sign off patches with configuration variables.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[format] +<pre><code>[format] headers = "Organization: git-foo\n" subjectprefix = CHANGE suffix = .txt @@ -1742,7 +1740,7 @@ cc = <email> attach [ = mime-boundary-string ] signoff = true - coverletter = auto</tt></pre> + coverletter = auto</code></pre> </div></div> </div> </div> @@ -1754,7 +1752,7 @@ from format-patch rather than a real mailbox, like so:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>From 8f72bad1baf19a53459661343e21d6491c3908d3 Mon Sep 17 00:00:00 2001 +<pre><code>From 8f72bad1baf19a53459661343e21d6491c3908d3 Mon Sep 17 00:00:00 2001 From: Tony Luck <tony.luck@intel.com> Date: Tue, 13 Jul 2010 11:42:54 -0700 Subject: [PATCH] =?UTF-8?q?[IA64]=20Put=20ia64=20config=20files=20on=20the=20?= @@ -1767,7 +1765,7 @@ (See commit c2330e286f68f1c408b4aa6515ba49d57f05beae comment) Do the same for ia64 so we can have sleek & trim looking -...</tt></pre> +...</code></pre> </div></div> <div class="paragraph"><p>Typically it will be placed in a MUA’s drafts folder, edited to add timely commentary that should not go in the changelog after the three @@ -1778,11 +1776,11 @@ <div class="paragraph"><p>When a patch is part of an ongoing discussion, the patch generated by <em>git format-patch</em> can be tweaked to take advantage of the <em>git am --scissors</em> feature. After your response to the discussion comes a -line that consists solely of "<tt>-- >8 --</tt>" (scissors and perforation), +line that consists solely of "<code>-- >8 --</code>" (scissors and perforation), followed by the patch with unnecessary header fields removed:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>... +<pre><code>... > So we should do such-and-such. Makes sense to me. How about this patch? @@ -1791,11 +1789,11 @@ Subject: [IA64] Put ia64 config files on the Uwe Kleine-König diet arch/arm config files were slimmed down using a python script -...</tt></pre> +...</code></pre> </div></div> <div class="paragraph"><p>When sending a patch this way, most often you are sending your own -patch, so in addition to the "<tt>From $SHA1 $magic_timestamp</tt>" marker you -should omit <tt>From:</tt> and <tt>Date:</tt> lines from the patch file. The patch +patch, so in addition to the "<code>From $SHA1 $magic_timestamp</code>" marker you +should omit <code>From:</code> and <code>Date:</code> lines from the patch file. The patch title is likely to be different from the subject of the discussion the patch is in response to, so it is likely that you would want to keep the Subject: line, like the example above.</p></div> @@ -1837,10 +1835,10 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>$ git fetch <project> master:test-apply +<pre><code>$ git fetch <project> master:test-apply $ git checkout test-apply $ git reset --hard -$ git am a.patch</tt></pre> +$ git am a.patch</code></pre> </div></div> </li> </ul></div> @@ -1931,7 +1929,7 @@ <div class="paragraph"><p>In Thunderbird 3: Edit..Preferences..Advanced..Config Editor. Search for "mail.wrap_long_lines". -Toggle it to make sure it is set to <tt>false</tt>. Also, search for +Toggle it to make sure it is set to <code>false</code>. Also, search for "mailnews.wraplength" and set the value to 0.</p></div> </li> <li> @@ -1939,7 +1937,7 @@ Disable the use of format=flowed: Edit..Preferences..Advanced..Config Editor. Search for "mailnews.send_plaintext_flowed". -Toggle it to make sure it is set to <tt>false</tt>. +Toggle it to make sure it is set to <code>false</code>. </p> </li> </ol></div> @@ -1974,8 +1972,8 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt> mailnews.send_plaintext_flowed => false - mailnews.wraplength => 0</tt></pre> +<pre><code> mailnews.send_plaintext_flowed => false + mailnews.wraplength => 0</code></pre> </div></div> </li> <li> @@ -1994,9 +1992,9 @@ about:config and the following settings but no one’s tried yet.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> mail.html_compose => false +<pre><code> mail.html_compose => false mail.identity.default.compose_html => false - mail.identity.id?.compose_html => false</tt></pre> + mail.identity.id?.compose_html => false</code></pre> </div></div> <div class="paragraph"><p>There is a script in contrib/thunderbird-patch-inline which can help you include patches with Thunderbird in an easy way. To use it, do the @@ -2049,7 +2047,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git format-patch -k --stdout R1..R2 | git am -3 -k</tt></pre> +<pre><code>$ git format-patch -k --stdout R1..R2 | git am -3 -k</code></pre> </div></div> </li> <li> @@ -2059,7 +2057,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git format-patch origin</tt></pre> +<pre><code>$ git format-patch origin</code></pre> </div></div> <div class="paragraph"><p>For each commit a separate file is created in the current directory.</p></div> </li> @@ -2070,7 +2068,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git format-patch --root origin</tt></pre> +<pre><code>$ git format-patch --root origin</code></pre> </div></div> </li> <li> @@ -2079,7 +2077,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git format-patch -M -B origin</tt></pre> +<pre><code>$ git format-patch -M -B origin</code></pre> </div></div> <div class="paragraph"><p>Additionally, it detects and handles renames and complete rewrites intelligently to produce a renaming patch. A renaming patch reduces @@ -2094,7 +2092,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git format-patch -3</tt></pre> +<pre><code>$ git format-patch -3</code></pre> </div></div> </li> </ul></div>
diff --git a/git-fsck-objects.html b/git-fsck-objects.html index b7ccaa8..dd9c9ed 100644 --- a/git-fsck-objects.html +++ b/git-fsck-objects.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-fsck-objects(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-fsck.html b/git-fsck.html index 8e83823..6a90ef3 100644 --- a/git-fsck.html +++ b/git-fsck.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-fsck(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -775,7 +773,7 @@ An object to treat as the head of an unreachability trace. </p> <div class="paragraph"><p>If no objects are given, <em>git fsck</em> defaults to using the -index file, all SHA-1 references in <tt>refs</tt> namespace, and all reflogs +index file, all SHA-1 references in <code>refs</code> namespace, and all reflogs (unless --no-reflogs is given) as heads.</p></div> </dd> <dt class="hdlist1"> @@ -793,7 +791,7 @@ <dd> <p> Print objects that exist but that are never <em>directly</em> used (default). - <tt>--no-dangling</tt> can be used to omit this information from the output. + <code>--no-dangling</code> can be used to omit this information from the output. </p> </dd> <dt class="hdlist1">
diff --git a/git-gc.html b/git-gc.html index 3fe4ab0..d59e108 100644 --- a/git-gc.html +++ b/git-gc.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-gc(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -765,12 +763,12 @@ <div class="paragraph"><p>Users are encouraged to run this task on a regular basis within each repository to maintain good disk space utilization and good operating performance.</p></div> -<div class="paragraph"><p>Some git commands may automatically run <em>git gc</em>; see the <tt>--auto</tt> flag +<div class="paragraph"><p>Some git commands may automatically run <em>git gc</em>; see the <code>--auto</code> flag below for details. If you know what you’re doing and all you want is to disable this behavior permanently without further considerations, just do:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git config --global gc.auto 0</tt></pre> +<pre><code>$ git config --global gc.auto 0</code></pre> </div></div> </div> </div> @@ -798,19 +796,19 @@ <p> With this option, <em>git gc</em> checks whether any housekeeping is required; if not, it exits without performing any work. - Some git commands run <tt>git gc --auto</tt> after performing + Some git commands run <code>git gc --auto</code> after performing operations that could create many loose objects. </p> <div class="paragraph"><p>Housekeeping is required if there are too many loose objects or too many packs in the repository. If the number of loose objects -exceeds the value of the <tt>gc.auto</tt> configuration variable, then +exceeds the value of the <code>gc.auto</code> configuration variable, then all loose objects are combined into a single pack using -<tt>git repack -d -l</tt>. Setting the value of <tt>gc.auto</tt> to 0 +<code>git repack -d -l</code>. Setting the value of <code>gc.auto</code> to 0 disables automatic packing of loose objects.</p></div> -<div class="paragraph"><p>If the number of packs exceeds the value of <tt>gc.autopacklimit</tt>, -then existing packs (except those marked with a <tt>.keep</tt> file) -are consolidated into a single pack by using the <tt>-A</tt> option of -<em>git repack</em>. Setting <tt>gc.autopacklimit</tt> to 0 disables +<div class="paragraph"><p>If the number of packs exceeds the value of <code>gc.autopacklimit</code>, +then existing packs (except those marked with a <code>.keep</code> file) +are consolidated into a single pack by using the <code>-A</code> option of +<em>git repack</em>. Setting <code>gc.autopacklimit</code> to 0 disables automatic consolidation of packs.</p></div> </dd> <dt class="hdlist1"> @@ -819,7 +817,7 @@ <dd> <p> Prune loose objects older than date (default is 2 weeks ago, - overridable by the config variable <tt>gc.pruneExpire</tt>). + overridable by the config variable <code>gc.pruneExpire</code>). --prune=all prunes loose objects regardless of their age. --prune is on by default. </p> @@ -845,7 +843,7 @@ </dt> <dd> <p> - Force <tt>git gc</tt> to run even if there may be another <tt>git gc</tt> + Force <code>git gc</code> to run even if there may be another <code>git gc</code> instance running on this repository. </p> </dd> @@ -864,7 +862,7 @@ can be set to indicate how long historical reflog entries which are not part of the current branch should remain available in this repository. These types of entries are generally created as -a result of using <tt>git commit --amend</tt> or <tt>git rebase</tt> and are the +a result of using <code>git commit --amend</code> or <code>git rebase</code> and are the commits prior to the amend or rebase occurring. Since these changes are not part of the current project most users will want to expire them sooner. This option defaults to <em>30 days</em>.</p></div> @@ -873,9 +871,9 @@ branches:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[gc "refs/remotes/*"] +<pre><code>[gc "refs/remotes/*"] reflogExpire = never - reflogexpireUnreachable = 3 days</tt></pre> + reflogexpireUnreachable = 3 days</code></pre> </div></div> <div class="paragraph"><p>The optional configuration variable <em>gc.rerereresolved</em> indicates how long records of conflicted merge you resolved earlier are
diff --git a/git-get-tar-commit-id.html b/git-get-tar-commit-id.html index 0da0ccb..eb092ef 100644 --- a/git-get-tar-commit-id.html +++ b/git-get-tar-commit-id.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-get-tar-commit-id(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-grep.html b/git-grep.html index 980986e..cc38df5 100644 --- a/git-grep.html +++ b/git-grep.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-grep(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -860,8 +858,8 @@ </dt> <dd> <p> - Also search in ignored files by not honoring the <tt>.gitignore</tt> - mechanism. Only useful with <tt>--untracked</tt>. + Also search in ignored files by not honoring the <code>.gitignore</code> + mechanism. Only useful with <code>--untracked</code>. </p> </dd> <dt class="hdlist1"> @@ -869,9 +867,9 @@ </dt> <dd> <p> - Do not pay attention to ignored files specified via the <tt>.gitignore</tt> + Do not pay attention to ignored files specified via the <code>.gitignore</code> mechanism. Only useful when searching files in the current directory - with <tt>--no-index</tt>. + with <code>--no-index</code>. </p> </dd> <dt class="hdlist1"> @@ -967,9 +965,9 @@ <dd> <p> By default, the command shows the filename for each - match. <tt>-h</tt> option is used to suppress this output. - <tt>-H</tt> is there for completeness and does not do anything - except it overrides <tt>-h</tt> given earlier on the command + match. <code>-h</code> option is used to suppress this output. + <code>-H</code> is there for completeness and does not do anything + except it overrides <code>-h</code> given earlier on the command line. </p> </dd> @@ -1056,8 +1054,8 @@ <p> Instead of showing every matched line, show only the names of files that contain (or do not contain) matches. - For better compatibility with <em>git diff</em>, <tt>--name-only</tt> is a - synonym for <tt>--files-with-matches</tt>. + For better compatibility with <em>git diff</em>, <code>--name-only</code> is a + synonym for <code>--files-with-matches</code>. </p> </dd> <dt class="hdlist1"> @@ -1114,7 +1112,7 @@ <p> Turn off match highlighting, even when the configuration file gives the default to color output. - Same as <tt>--color=never</tt>. + Same as <code>--color=never</code>. </p> </dd> <dt class="hdlist1"> @@ -1161,7 +1159,7 @@ <dd> <p> Show <num> leading and trailing lines, and place a line - containing <tt>--</tt> between contiguous groups of matches. + containing <code>--</code> between contiguous groups of matches. </p> </dd> <dt class="hdlist1"> @@ -1173,7 +1171,7 @@ <dd> <p> Show <num> trailing lines, and place a line containing - <tt>--</tt> between contiguous groups of matches. + <code>--</code> between contiguous groups of matches. </p> </dd> <dt class="hdlist1"> @@ -1185,7 +1183,7 @@ <dd> <p> Show <num> leading lines, and place a line containing - <tt>--</tt> between contiguous groups of matches. + <code>--</code> between contiguous groups of matches. </p> </dd> <dt class="hdlist1"> @@ -1216,7 +1214,7 @@ <dd> <p> The next parameter is the pattern. This option has to be - used for patterns starting with <tt>-</tt> and should be used in + used for patterns starting with <code>-</code> and should be used in scripts passing user input to grep. Multiple patterns are combined by <em>or</em>. </p> @@ -1236,8 +1234,8 @@ <dd> <p> Specify how multiple patterns are combined using Boolean - expressions. <tt>--or</tt> is the default operator. <tt>--and</tt> has - higher precedence than <tt>--or</tt>. <tt>-e</tt> has to be used for all + expressions. <code>--or</code> is the default operator. <code>--and</code> has + higher precedence than <code>--or</code>. <code>-e</code> has to be used for all patterns. </p> </dd> @@ -1246,7 +1244,7 @@ </dt> <dd> <p> - When giving multiple pattern expressions combined with <tt>--or</tt>, + When giving multiple pattern expressions combined with <code>--or</code>, this flag is specified to limit the match to files that have lines to match all of them. </p> @@ -1298,29 +1296,29 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>git grep 'time_t' -- '*.[ch]'</tt> +<code>git grep 'time_t' -- '*.[ch]'</code> </dt> <dd> <p> - Looks for <tt>time_t</tt> in all tracked .c and .h files in the working + Looks for <code>time_t</code> in all tracked .c and .h files in the working directory and its subdirectories. </p> </dd> <dt class="hdlist1"> -<tt>git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)</tt> +<code>git grep -e '#define' --and \( -e MAX_PATH -e PATH_MAX \)</code> </dt> <dd> <p> - Looks for a line that has <tt>#define</tt> and either <tt>MAX_PATH</tt> or - <tt>PATH_MAX</tt>. + Looks for a line that has <code>#define</code> and either <code>MAX_PATH</code> or + <code>PATH_MAX</code>. </p> </dd> <dt class="hdlist1"> -<tt>git grep --all-match -e NODE -e Unexpected</tt> +<code>git grep --all-match -e NODE -e Unexpected</code> </dt> <dd> <p> - Looks for a line that has <tt>NODE</tt> or <tt>Unexpected</tt> in + Looks for a line that has <code>NODE</code> or <code>Unexpected</code> in files that have lines that match both. </p> </dd>
diff --git a/git-gui.html b/git-gui.html index 816e940..5866db0 100644 --- a/git-gui.html +++ b/git-gui.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-gui(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -822,7 +820,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>git gui blame Makefile</tt> +<code>git gui blame Makefile</code> </dt> <dd> <p> @@ -835,7 +833,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git gui blame v0.99.8 Makefile</tt> +<code>git gui blame v0.99.8 Makefile</code> </dt> <dd> <p> @@ -846,7 +844,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git gui blame --line=100 Makefile</tt> +<code>git gui blame --line=100 Makefile</code> </dt> <dd> <p> @@ -855,7 +853,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git gui citool</tt> +<code>git gui citool</code> </dt> <dd> <p> @@ -865,7 +863,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git gui citool --amend</tt> +<code>git gui citool --amend</code> </dt> <dd> <p> @@ -874,7 +872,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git gui citool --nocommit</tt> +<code>git gui citool --nocommit</code> </dt> <dd> <p> @@ -885,15 +883,15 @@ </p> </dd> <dt class="hdlist1"> -<tt>git citool</tt> +<code>git citool</code> </dt> <dd> <p> - Same as <tt>git gui citool</tt> (above). + Same as <code>git gui citool</code> (above). </p> </dd> <dt class="hdlist1"> -<tt>git gui browser maint</tt> +<code>git gui browser maint</code> </dt> <dd> <p> @@ -931,12 +929,12 @@ <div class="paragraph"><p>A <em>git gui</em> development repository can be obtained from:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git clone git://repo.or.cz/git-gui.git</tt></pre> +<pre><code>git clone git://repo.or.cz/git-gui.git</code></pre> </div></div> <div class="paragraph"><p>or</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git clone http://repo.or.cz/r/git-gui.git</tt></pre> +<pre><code>git clone http://repo.or.cz/r/git-gui.git</code></pre> </div></div> <div class="paragraph"><p>or browsed online at <a href="http://repo.or.cz/w/git-gui.git/">http://repo.or.cz/w/git-gui.git/</a>.</p></div> </div>
diff --git a/git-hash-object.html b/git-hash-object.html index 39dc197..bcd944e 100644 --- a/git-hash-object.html +++ b/git-hash-object.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-hash-object(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-help.html b/git-help.html index d398327..cf8f6fc 100644 --- a/git-help.html +++ b/git-help.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-help(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -770,10 +768,10 @@ guide is brought up. The <em>man</em> program is used by default for this purpose, but this can be overridden by other options or configuration variables.</p></div> -<div class="paragraph"><p>Note that <tt>git --help ...</tt> is identical to <tt>git help ...</tt> because the +<div class="paragraph"><p>Note that <code>git --help ...</code> is identical to <code>git help ...</code> because the former is internally converted into the latter.</p></div> -<div class="paragraph"><p>To display the <a href="git.html">git(1)</a> man page, use <tt>git help git</tt>.</p></div> -<div class="paragraph"><p>This page can be displayed with <em>git help help</em> or <tt>git help --help</tt></p></div> +<div class="paragraph"><p>To display the <a href="git.html">git(1)</a> man page, use <code>git help git</code>.</p></div> +<div class="paragraph"><p>This page can be displayed with <em>git help help</em> or <code>git help --help</code></p></div> </div> </div> <div class="sect1"> @@ -917,9 +915,9 @@ <div class="paragraph"><p>For example, this configuration:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [man] +<pre><code> [man] viewer = konqueror - viewer = woman</tt></pre> + viewer = woman</code></pre> </div></div> <div class="paragraph"><p>will try to use konqueror first. But this may fail (for example, if DISPLAY is not set) and in that case emacs' woman mode will be tried.</p></div> @@ -956,11 +954,11 @@ the following:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [man] +<pre><code> [man] viewer = konq [man "konq"] - cmd = A_PATH_TO/konqueror</tt></pre> + cmd = A_PATH_TO/konqueror</code></pre> </div></div> </div> <div class="sect2"> @@ -969,8 +967,8 @@ using the <em>--global</em> flag, for example like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git config --global help.format web -$ git config --global web.browser firefox</tt></pre> +<pre><code>$ git config --global help.format web +$ git config --global web.browser firefox</code></pre> </div></div> <div class="paragraph"><p>as they are probably more user specific than repository specific. See <a href="git-config.html">git-config(1)</a> for more information about this.</p></div>
diff --git a/git-http-backend.html b/git-http-backend.html index 8c4c563..3de098d 100644 --- a/git-http-backend.html +++ b/git-http-backend.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-http-backend(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -767,10 +765,10 @@ "git-daemon-export-ok", and it will refuse to export any Git directory that hasn’t explicitly been marked for export this way (unless the GIT_HTTP_EXPORT_ALL environmental variable is set).</p></div> -<div class="paragraph"><p>By default, only the <tt>upload-pack</tt> service is enabled, which serves +<div class="paragraph"><p>By default, only the <code>upload-pack</code> service is enabled, which serves <em>git fetch-pack</em> and <em>git ls-remote</em> clients, which are invoked from <em>git fetch</em>, <em>git pull</em>, and <em>git clone</em>. If the client is authenticated, -the <tt>receive-pack</tt> service is enabled, which serves <em>git send-pack</em> +the <code>receive-pack</code> service is enabled, which serves <em>git send-pack</em> clients, which is invoked from <em>git push</em>.</p></div> </div> </div> @@ -790,7 +788,7 @@ any file within the repository, including objects that are no longer reachable from a branch but are still present. It is enabled by default, but a repository can disable it - by setting this configuration item to <tt>false</tt>. + by setting this configuration item to <code>false</code>. </p> </dd> <dt class="hdlist1"> @@ -800,7 +798,7 @@ <p> This serves <em>git fetch-pack</em> and <em>git ls-remote</em> clients. It is enabled by default, but a repository can disable it - by setting this configuration item to <tt>false</tt>. + by setting this configuration item to <code>false</code>. </p> </dd> <dt class="hdlist1"> @@ -811,8 +809,8 @@ This serves <em>git send-pack</em> clients, allowing push. It is disabled by default for anonymous users, and enabled by default for users authenticated by the web server. It can be - disabled by setting this item to <tt>false</tt>, or enabled for all - users, including anonymous users, by setting it to <tt>true</tt>. + disabled by setting this item to <code>false</code>, or enabled for all + users, including anonymous users, by setting it to <code>true</code>. </p> </dd> </dl></div> @@ -846,9 +844,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>SetEnv GIT_PROJECT_ROOT /var/www/git +<pre><code>SetEnv GIT_PROJECT_ROOT /var/www/git SetEnv GIT_HTTP_EXPORT_ALL -ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/</tt></pre> +ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/</code></pre> </div></div> <div class="paragraph"><p>To enable anonymous read access but authenticated write access, require authorization for both the initial ref advertisement (which we @@ -856,7 +854,7 @@ receive-pack invocation itself:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>RewriteCond %{QUERY_STRING} service=git-receive-pack [OR] +<pre><code>RewriteCond %{QUERY_STRING} service=git-receive-pack [OR] RewriteCond %{REQUEST_URI} /git-receive-pack$ RewriteRule ^/git/ - [E=AUTHREQUIRED:yes] @@ -869,45 +867,45 @@ Require group committers Satisfy Any ... -</LocationMatch></tt></pre> +</LocationMatch></code></pre> </div></div> -<div class="paragraph"><p>If you do not have <tt>mod_rewrite</tt> available to match against the query -string, it is sufficient to just protect <tt>git-receive-pack</tt> itself, +<div class="paragraph"><p>If you do not have <code>mod_rewrite</code> available to match against the query +string, it is sufficient to just protect <code>git-receive-pack</code> itself, like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><LocationMatch "^/git/.*/git-receive-pack$"> +<pre><code><LocationMatch "^/git/.*/git-receive-pack$"> AuthType Basic AuthName "Git Access" Require group committers ... -</LocationMatch></tt></pre> +</LocationMatch></code></pre> </div></div> <div class="paragraph"><p>In this mode, the server will not request authentication until the client actually starts the object negotiation phase of the push, rather than during the initial contact. For this reason, you must also enable -the <tt>http.receivepack</tt> config option in any repositories that should -accept a push. The default behavior, if <tt>http.receivepack</tt> is not set, +the <code>http.receivepack</code> config option in any repositories that should +accept a push. The default behavior, if <code>http.receivepack</code> is not set, is to reject any pushes by unauthenticated users; the initial request -will therefore report <tt>403 Forbidden</tt> to the client, without even giving +will therefore report <code>403 Forbidden</code> to the client, without even giving an opportunity for authentication.</p></div> <div class="paragraph"><p>To require authentication for both reads and writes, use a Location directive around the repository, or one of its parent directories:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><Location /git/private> +<pre><code><Location /git/private> AuthType Basic AuthName "Private Git Access" Require group committers ... -</Location></tt></pre> +</Location></code></pre> </div></div> <div class="paragraph"><p>To serve gitweb at the same url, use a ScriptAliasMatch to only those URLs that <em>git http-backend</em> can handle, and forward the rest to gitweb:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>ScriptAliasMatch \ +<pre><code>ScriptAliasMatch \ "(?x)^/git/(.*/(HEAD | \ info/refs | \ objects/(info/[^/]+ | \ @@ -916,14 +914,14 @@ git-(upload|receive)-pack))$" \ /usr/libexec/git-core/git-http-backend/$1 -ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/</tt></pre> +ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/</code></pre> </div></div> <div class="paragraph"><p>To serve multiple repositories from different <a href="gitnamespaces.html">gitnamespaces(7)</a> in a single repository:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>SetEnvIf Request_URI "^/git/([^/]*)" GIT_NAMESPACE=$1 -ScriptAliasMatch ^/git/[^/]*(.*) /usr/libexec/git-core/git-http-backend/storage.git$1</tt></pre> +<pre><code>SetEnvIf Request_URI "^/git/([^/]*)" GIT_NAMESPACE=$1 +ScriptAliasMatch ^/git/[^/]*(.*) /usr/libexec/git-core/git-http-backend/storage.git$1</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -938,16 +936,16 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>SetEnv GIT_PROJECT_ROOT /var/www/git +<pre><code>SetEnv GIT_PROJECT_ROOT /var/www/git AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1 AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1 -ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/</tt></pre> +ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/</code></pre> </div></div> <div class="paragraph"><p>This can be combined with the gitweb configuration:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>SetEnv GIT_PROJECT_ROOT /var/www/git +<pre><code>SetEnv GIT_PROJECT_ROOT /var/www/git AliasMatch ^/git/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /var/www/git/$1 AliasMatch ^/git/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /var/www/git/$1 @@ -957,7 +955,7 @@ objects/info/[^/]+ | \ git-(upload|receive)-pack))$" \ /usr/libexec/git-core/git-http-backend/$1 -ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/</tt></pre> +ScriptAlias /git/ /var/www/cgi-bin/gitweb.cgi/</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -965,49 +963,49 @@ </dt> <dd> <p> - Ensure that <tt>mod_cgi</tt>, <tt>mod_alias</tt>, <tt>mod_auth</tt>, <tt>mod_setenv</tt> are - loaded, then set <tt>GIT_PROJECT_ROOT</tt> appropriately and redirect + Ensure that <code>mod_cgi</code>, <code>mod_alias</code>, <code>mod_auth</code>, <code>mod_setenv</code> are + loaded, then set <code>GIT_PROJECT_ROOT</code> appropriately and redirect all requests to the CGI: </p> <div class="listingblock"> <div class="content"> -<pre><tt>alias.url += ( "/git" => "/usr/lib/git-core/git-http-backend" ) +<pre><code>alias.url += ( "/git" => "/usr/lib/git-core/git-http-backend" ) $HTTP["url"] =~ "^/git" { cgi.assign = ("" => "") setenv.add-environment = ( "GIT_PROJECT_ROOT" => "/var/www/git", "GIT_HTTP_EXPORT_ALL" => "" ) -}</tt></pre> +}</code></pre> </div></div> <div class="paragraph"><p>To enable anonymous read access but authenticated write access:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$HTTP["querystring"] =~ "service=git-receive-pack" { +<pre><code>$HTTP["querystring"] =~ "service=git-receive-pack" { include "git-auth.conf" } $HTTP["url"] =~ "^/git/.*/git-receive-pack$" { include "git-auth.conf" -}</tt></pre> +}</code></pre> </div></div> -<div class="paragraph"><p>where <tt>git-auth.conf</tt> looks something like:</p></div> +<div class="paragraph"><p>where <code>git-auth.conf</code> looks something like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>auth.require = ( +<pre><code>auth.require = ( "/" => ( "method" => "basic", "realm" => "Git Access", "require" => "valid-user" ) ) -# ...and set up auth.backend here</tt></pre> +# ...and set up auth.backend here</code></pre> </div></div> <div class="paragraph"><p>To require authentication for both reads and writes:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$HTTP["url"] =~ "^/git/private" { +<pre><code>$HTTP["url"] =~ "^/git/private" { include "git-auth.conf" -}</tt></pre> +}</code></pre> </div></div> </dd> </dl></div>
diff --git a/git-http-fetch.html b/git-http-fetch.html index 1a0973d..43be6fb 100644 --- a/git-http-fetch.html +++ b/git-http-fetch.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-http-fetch(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -827,7 +825,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt><commit-id>['\t'<filename-as-in--w>]</tt></pre> +<pre><code><commit-id>['\t'<filename-as-in--w>]</code></pre> </div></div> </dd> <dt class="hdlist1">
diff --git a/git-http-push.html b/git-http-push.html index d5118f5..9de4102 100644 --- a/git-http-push.html +++ b/git-http-push.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-http-push(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-index-pack.html b/git-index-pack.html index e4b3057..134d393 100644 --- a/git-index-pack.html +++ b/git-index-pack.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-index-pack(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -811,7 +809,7 @@ </dt> <dd> <p> - Fix a "thin" pack produced by <tt>git pack-objects --thin</tt> (see + Fix a "thin" pack produced by <code>git pack-objects --thin</code> (see <a href="git-pack-objects.html">git-pack-objects(1)</a> for details) by adding the excluded objects the deltified objects are based on to the pack. This option only makes sense in conjunction with --stdin.
diff --git a/git-init-db.html b/git-init-db.html index dcb51cb..05e28c3 100644 --- a/git-init-db.html +++ b/git-init-db.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-init-db(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-init.html b/git-init.html index 541c663..b51d235 100644 --- a/git-init.html +++ b/git-init.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-init(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -760,15 +758,15 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>This command creates an empty Git repository - basically a <tt>.git</tt> -directory with subdirectories for <tt>objects</tt>, <tt>refs/heads</tt>, -<tt>refs/tags</tt>, and template files. An initial <tt>HEAD</tt> file that +<div class="paragraph"><p>This command creates an empty Git repository - basically a <code>.git</code> +directory with subdirectories for <code>objects</code>, <code>refs/heads</code>, +<code>refs/tags</code>, and template files. An initial <code>HEAD</code> file that references the HEAD of the master branch is also created.</p></div> -<div class="paragraph"><p>If the <tt>$GIT_DIR</tt> environment variable is set then it specifies a path -to use instead of <tt>./.git</tt> for the base of the repository.</p></div> +<div class="paragraph"><p>If the <code>$GIT_DIR</code> environment variable is set then it specifies a path +to use instead of <code>./.git</code> for the base of the repository.</p></div> <div class="paragraph"><p>If the object storage directory is specified via the -<tt>$GIT_OBJECT_DIRECTORY</tt> environment variable then the sha1 directories -are created underneath - otherwise the default <tt>$GIT_DIR/objects</tt> +<code>$GIT_OBJECT_DIRECTORY</code> environment variable then the sha1 directories +are created underneath - otherwise the default <code>$GIT_DIR/objects</code> directory is used.</p></div> <div class="paragraph"><p>Running <em>git init</em> in an existing repository is safe. It will not overwrite things that are already there. The primary reason for @@ -816,8 +814,8 @@ </dt> <dd> <p> -Instead of initializing the repository as a directory to either <tt>$GIT_DIR</tt> or -<tt>./.git/</tt>, create a text file there containing the path to the actual +Instead of initializing the repository as a directory to either <code>$GIT_DIR</code> or +<code>./.git/</code>, create a text file there containing the path to the actual repository. This file acts as filesystem-agnostic Git symbolic link to the repository. </p> @@ -831,7 +829,7 @@ Specify that the Git repository is to be shared amongst several users. This allows users belonging to the same group to push into that repository. When specified, the config variable "core.sharedRepository" is -set so that files and directories under <tt>$GIT_DIR</tt> are created with the +set so that files and directories under <code>$GIT_DIR</code> are created with the requested permissions. When not specified, Git will use permissions reported by umask(2). </p> @@ -845,7 +843,7 @@ </dt> <dd> <p> -Use permissions reported by umask(2). The default, when <tt>--shared</tt> is not +Use permissions reported by umask(2). The default, when <code>--shared</code> is not specified. </p> </dd> @@ -886,7 +884,7 @@ </div></div> </dd> </dl></div> -<div class="paragraph"><p>By default, the configuration flag <tt>receive.denyNonFastForwards</tt> is enabled +<div class="paragraph"><p>By default, the configuration flag <code>receive.denyNonFastForwards</code> is enabled in shared repositories, so that you cannot force a non fast-forwarding push into it.</p></div> <div class="paragraph"><p>If you provide a <em>directory</em>, the command is run inside it. If this directory @@ -898,27 +896,27 @@ <h2 id="_template_directory">TEMPLATE DIRECTORY</h2> <div class="sectionbody"> <div class="paragraph"><p>The template directory contains files and directories that will be copied to -the <tt>$GIT_DIR</tt> after it is created.</p></div> +the <code>$GIT_DIR</code> after it is created.</p></div> <div class="paragraph"><p>The template directory will be one of the following (in order):</p></div> <div class="ulist"><ul> <li> <p> -the argument given with the <tt>--template</tt> option; +the argument given with the <code>--template</code> option; </p> </li> <li> <p> -the contents of the <tt>$GIT_TEMPLATE_DIR</tt> environment variable; +the contents of the <code>$GIT_TEMPLATE_DIR</code> environment variable; </p> </li> <li> <p> -the <tt>init.templatedir</tt> configuration variable; or +the <code>init.templatedir</code> configuration variable; or </p> </li> <li> <p> -the default template directory: <tt>/usr/share/git-core/templates</tt>. +the default template directory: <code>/usr/share/git-core/templates</code>. </p> </li> </ul></div> @@ -936,10 +934,10 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ cd /path/to/my/codebase +<pre><code>$ cd /path/to/my/codebase $ git init <b><1></b> $ git add . <b><2></b> -$ git commit <b><3></b></tt></pre> +$ git commit <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li>
diff --git a/git-instaweb.html b/git-instaweb.html index 77b3cc8..9f247ca 100644 --- a/git-instaweb.html +++ b/git-instaweb.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-instaweb(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -760,7 +758,7 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>A simple script to set up <tt>gitweb</tt> and a web server for browsing the local +<div class="paragraph"><p>A simple script to set up <code>gitweb</code> and a web server for browsing the local repository.</p></div> </div> </div> @@ -878,12 +876,12 @@ <div class="paragraph"><p>You may specify configuration in your .git/config</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[instaweb] +<pre><code>[instaweb] local = true httpd = apache2 -f port = 4321 browser = konqueror - modulepath = /usr/lib/apache2/modules</tt></pre> + modulepath = /usr/lib/apache2/modules</code></pre> </div></div> <div class="paragraph"><p>If the configuration variable <em>instaweb.browser</em> is not set, <em>web.browser</em> will be used instead if it is defined. See
diff --git a/git-ls-files.html b/git-ls-files.html index 22be2c0..285bead 100644 --- a/git-ls-files.html +++ b/git-ls-files.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-ls-files(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -955,7 +953,7 @@ <file> (i.e. path pattern) arguments to paths, pretend that paths which were removed in the index since the named <tree-ish> are still present. Using this option - with <tt>-s</tt> or <tt>-u</tt> options does not make any sense. + with <code>-s</code> or <code>-u</code> options does not make any sense. </p> </dd> <dt class="hdlist1"> @@ -964,11 +962,11 @@ <dd> <p> This feature is semi-deprecated. For scripting purpose, - <a href="git-status.html">git-status(1)</a> <tt>--porcelain</tt> and - <a href="git-diff-files.html">git-diff-files(1)</a> <tt>--name-status</tt> are almost always + <a href="git-status.html">git-status(1)</a> <code>--porcelain</code> and + <a href="git-diff-files.html">git-diff-files(1)</a> <code>--name-status</code> are almost always superior alternatives, and users should look at - <a href="git-status.html">git-status(1)</a> <tt>--short</tt> or <a href="git-diff.html">git-diff(1)</a> - <tt>--name-status</tt> for more user-friendly alternatives. + <a href="git-status.html">git-status(1)</a> <code>--short</code> or <a href="git-diff.html">git-diff(1)</a> + <code>--name-status</code> for more user-friendly alternatives. </p> <div class="paragraph"><p>This option identifies the file status with the following tags (followed by a space) at the start of each line:</p></div> @@ -1034,7 +1032,7 @@ </dt> <dd> <p> - Similar to <tt>-t</tt>, but use lowercase letters for files + Similar to <code>-t</code>, but use lowercase letters for files that are marked as <em>assume unchanged</em> (see <a href="git-update-index.html">git-update-index(1)</a>). </p> @@ -1098,7 +1096,7 @@ which case it outputs:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>[<tag> ]<mode> <object> <stage> <file></tt></pre> +<pre><code>[<tag> ]<mode> <object> <stage> <file></code></pre> </div></div> <div class="paragraph"><p><em>git ls-files --unmerged</em> and <em>git ls-files --stage</em> can be used to examine detailed information on unmerged paths.</p></div> @@ -1107,8 +1105,8 @@ 1, A in stage 2, and B in stage 3. This information can be used by the user (or the porcelain) to see what should eventually be recorded at the path. (see <a href="git-read-tree.html">git-read-tree(1)</a> for more information on state)</p></div> -<div class="paragraph"><p>When <tt>-z</tt> option is not used, TAB, LF, and backslash characters -in pathnames are represented as <tt>\t</tt>, <tt>\n</tt>, and <tt>\\</tt>, +<div class="paragraph"><p>When <code>-z</code> option is not used, TAB, LF, and backslash characters +in pathnames are represented as <code>\t</code>, <code>\n</code>, and <code>\\</code>, respectively.</p></div> </div> </div> @@ -1139,7 +1137,7 @@ <p> The command-line flag --exclude-per-directory=<name> specifies a name of the file in each directory <em>git ls-files</em> - examines, normally <tt>.gitignore</tt>. Files in deeper + examines, normally <code>.gitignore</code>. Files in deeper directories take precedence. Patterns are ordered in the same order they appear in the files. </p>
diff --git a/git-ls-remote.html b/git-ls-remote.html index c8b9d90..af6a7d4 100644 --- a/git-ls-remote.html +++ b/git-ls-remote.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-ls-remote(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -851,7 +849,7 @@ <div class="sectionbody"> <div class="literalblock"> <div class="content"> -<pre><tt>$ git ls-remote --tags ./. +<pre><code>$ git ls-remote --tags ./. d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99 f25a265a342aed6041ab0cc484224d9ca54b6f41 refs/tags/v0.99.1 7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3 @@ -865,7 +863,7 @@ d6602ec5194c87b0fc87103ca4d67251c76f233a refs/tags/v0.99 f25a265a342aed6041ab0cc484224d9ca54b6f41 refs/tags/v0.99.1 c5db5456ae3b0873fc659c19fafdde22313cc441 refs/tags/v0.99.2 -7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3</tt></pre> +7ceca275d047c90c0c7d5afb13ab97efdf51bd6e refs/tags/v0.99.3</code></pre> </div></div> </div> </div>
diff --git a/git-ls-tree.html b/git-ls-tree.html index 43b6bbe..7c5e47b 100644 --- a/git-ls-tree.html +++ b/git-ls-tree.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-ls-tree(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -778,7 +776,7 @@ in a directory <em>sub</em> that has a directory <em>dir</em>, you can run <em>git ls-tree -r HEAD dir</em> to list the contents of the tree (that is <em>sub/dir</em> in <em>HEAD</em>). You don’t want to give a tree that is not at the - root level (e.g. <tt>git ls-tree -r HEAD:sub dir</tt>) in this case, as that + root level (e.g. <code>git ls-tree -r HEAD:sub dir</code>) in this case, as that would result in asking for <em>sub/sub/dir</em> in the <em>HEAD</em> commit. However, the current working directory can be ignored by passing --full-tree option. @@ -900,20 +898,20 @@ <div class="sectionbody"> <div class="literalblock"> <div class="content"> -<pre><tt><mode> SP <type> SP <object> TAB <file></tt></pre> +<pre><code><mode> SP <type> SP <object> TAB <file></code></pre> </div></div> -<div class="paragraph"><p>Unless the <tt>-z</tt> option is used, TAB, LF, and backslash characters -in pathnames are represented as <tt>\t</tt>, <tt>\n</tt>, and <tt>\\</tt>, respectively. -This output format is compatible with what <tt>--index-info --stdin</tt> of +<div class="paragraph"><p>Unless the <code>-z</code> option is used, TAB, LF, and backslash characters +in pathnames are represented as <code>\t</code>, <code>\n</code>, and <code>\\</code>, respectively. +This output format is compatible with what <code>--index-info --stdin</code> of <em>git update-index</em> expects.</p></div> -<div class="paragraph"><p>When the <tt>-l</tt> option is used, format changes to</p></div> +<div class="paragraph"><p>When the <code>-l</code> option is used, format changes to</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><mode> SP <type> SP <object> SP <object size> TAB <file></tt></pre> +<pre><code><mode> SP <type> SP <object> SP <object size> TAB <file></code></pre> </div></div> <div class="paragraph"><p>Object size identified by <object> is given in bytes, and right-justified with minimum width of 7 characters. Object size is given only for blobs -(file) entries; for other entries <tt>-</tt> character is used in place of size.</p></div> +(file) entries; for other entries <code>-</code> character is used in place of size.</p></div> </div> </div> <div class="sect1">
diff --git a/git-mailinfo.html b/git-mailinfo.html index e907b47..8345f9a 100644 --- a/git-mailinfo.html +++ b/git-mailinfo.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-mailinfo(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -791,13 +789,13 @@ </li> <li> <p> -Leading <tt>Re:</tt>, <tt>re:</tt>, and <tt>:</tt>. +Leading <code>Re:</code>, <code>re:</code>, and <code>:</code>. </p> </li> <li> <p> -Leading bracketed strings (between <tt>[</tt> and <tt>]</tt>, usually - <tt>[PATCH]</tt>). +Leading bracketed strings (between <code>[</code> and <code>]</code>, usually + <code>[PATCH]</code>). </p> </li> </ul></div>
diff --git a/git-mailsplit.html b/git-mailsplit.html index 34d8286..5624411 100644 --- a/git-mailsplit.html +++ b/git-mailsplit.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-mailsplit(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -834,7 +832,7 @@ </dt> <dd> <p> - Do not remove <tt>\r</tt> from lines ending with <tt>\r\n</tt>. + Do not remove <code>\r</code> from lines ending with <code>\r\n</code>. </p> </dd> </dl></div>
diff --git a/git-merge-base.html b/git-merge-base.html index 32369bc..28c9a78 100644 --- a/git-merge-base.html +++ b/git-merge-base.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-merge-base(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -781,7 +779,7 @@ across all the remaining commits on the command line.</p></div> <div class="paragraph"><p>As a consequence, the <em>merge base</em> is not necessarily contained in each of the commit arguments if more than two commits are specified. This is different -from <a href="git-show-branch.html">git-show-branch(1)</a> when used with the <tt>--merge-base</tt> option.</p></div> +from <a href="git-show-branch.html">git-show-branch(1)</a> when used with the <code>--merge-base</code> option.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> --octopus @@ -853,54 +851,54 @@ <div class="sect1"> <h2 id="_discussion">DISCUSSION</h2> <div class="sectionbody"> -<div class="paragraph"><p>Given two commits <em>A</em> and <em>B</em>, <tt>git merge-base A B</tt> will output a commit +<div class="paragraph"><p>Given two commits <em>A</em> and <em>B</em>, <code>git merge-base A B</code> will output a commit which is reachable from both <em>A</em> and <em>B</em> through the parent relationship.</p></div> <div class="paragraph"><p>For example, with this topology:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> o---o---o---B +<pre><code> o---o---o---B / ----o---1---o---o---o---A</tt></pre> +---o---1---o---o---o---A</code></pre> </div></div> <div class="paragraph"><p>the merge base between <em>A</em> and <em>B</em> is <em>1</em>.</p></div> -<div class="paragraph"><p>Given three commits <em>A</em>, <em>B</em> and <em>C</em>, <tt>git merge-base A B C</tt> will compute the +<div class="paragraph"><p>Given three commits <em>A</em>, <em>B</em> and <em>C</em>, <code>git merge-base A B C</code> will compute the merge base between <em>A</em> and a hypothetical commit <em>M</em>, which is a merge between <em>B</em> and <em>C</em>. For example, with this topology:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> o---o---o---o---C +<pre><code> o---o---o---o---C / / o---o---o---B / / ----2---1---o---o---o---A</tt></pre> +---2---1---o---o---o---A</code></pre> </div></div> -<div class="paragraph"><p>the result of <tt>git merge-base A B C</tt> is <em>1</em>. This is because the +<div class="paragraph"><p>the result of <code>git merge-base A B C</code> is <em>1</em>. This is because the equivalent topology with a merge commit <em>M</em> between <em>B</em> and <em>C</em> is:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> o---o---o---o---o +<pre><code> o---o---o---o---o / \ / o---o---o---o---M / / ----2---1---o---o---o---A</tt></pre> +---2---1---o---o---o---A</code></pre> </div></div> -<div class="paragraph"><p>and the result of <tt>git merge-base A M</tt> is <em>1</em>. Commit <em>2</em> is also a +<div class="paragraph"><p>and the result of <code>git merge-base A M</code> is <em>1</em>. Commit <em>2</em> is also a common ancestor between <em>A</em> and <em>M</em>, but <em>1</em> is a better common ancestor, because <em>2</em> is an ancestor of <em>1</em>. Hence, <em>2</em> is not a merge base.</p></div> -<div class="paragraph"><p>The result of <tt>git merge-base --octopus A B C</tt> is <em>2</em>, because <em>2</em> is +<div class="paragraph"><p>The result of <code>git merge-base --octopus A B C</code> is <em>2</em>, because <em>2</em> is the best common ancestor of all commits.</p></div> <div class="paragraph"><p>When the history involves criss-cross merges, there can be more than one <em>best</em> common ancestor for two commits. For example, with this topology:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>---1---o---A +<pre><code>---1---o---A \ / X / \ ----2---o---o---B</tt></pre> +---2---o---o---B</code></pre> </div></div> <div class="paragraph"><p>both <em>1</em> and <em>2</em> are merge-bases of A and B. Neither one is better than -the other (both are <em>best</em> merge bases). When the <tt>--all</tt> option is not given, +the other (both are <em>best</em> merge bases). When the <code>--all</code> option is not given, it is unspecified which best one is output.</p></div> <div class="paragraph"><p>A common idiom to check "fast-forward-ness" between two commits A and B is (or at least used to be) to compute the merge base between @@ -908,19 +906,19 @@ ancestor of B. You will see this idiom used often in older scripts.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>A=$(git rev-parse --verify A) +<pre><code>A=$(git rev-parse --verify A) if test "$A" = "$(git merge-base A B)" then ... A is an ancestor of B ... -fi</tt></pre> +fi</code></pre> </div></div> <div class="paragraph"><p>In modern git, you can say this in a more direct way:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>if git merge-base --is-ancestor A B +<pre><code>if git merge-base --is-ancestor A B then ... A is an ancestor of B ... -fi</tt></pre> +fi</code></pre> </div></div> <div class="paragraph"><p>instead.</p></div> </div> @@ -928,29 +926,29 @@ <div class="sect1"> <h2 id="_discussion_on_fork_point_mode">Discussion on fork-point mode</h2> <div class="sectionbody"> -<div class="paragraph"><p>After working on the <tt>topic</tt> branch created with <tt>git checkout -b -topic origin/master</tt>, the history of remote-tracking branch -<tt>origin/master</tt> may have been rewound and rebuilt, leading to a +<div class="paragraph"><p>After working on the <code>topic</code> branch created with <code>git checkout -b +topic origin/master</code>, the history of remote-tracking branch +<code>origin/master</code> may have been rewound and rebuilt, leading to a history of this shape:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> o---B1 +<pre><code> o---B1 / ---o---o---B2--o---o---o---B (origin/master) \ B3 \ - Derived (topic)</tt></pre> + Derived (topic)</code></pre> </div></div> -<div class="paragraph"><p>where <tt>origin/master</tt> used to point at commits B3, B2, B1 and now it -points at B, and your <tt>topic</tt> branch was started on top of it back -when <tt>origin/master</tt> was at B3. This mode uses the reflog of -<tt>origin/master</tt> to find B3 as the fork point, so that the <tt>topic</tt> -can be rebased on top of the updated <tt>origin/master</tt> by:</p></div> +<div class="paragraph"><p>where <code>origin/master</code> used to point at commits B3, B2, B1 and now it +points at B, and your <code>topic</code> branch was started on top of it back +when <code>origin/master</code> was at B3. This mode uses the reflog of +<code>origin/master</code> to find B3 as the fork point, so that the <code>topic</code> +can be rebased on top of the updated <code>origin/master</code> by:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ fork_point=$(git merge-base --fork-point origin/master topic) -$ git rebase --onto origin/master $fork_point topic</tt></pre> +<pre><code>$ fork_point=$(git merge-base --fork-point origin/master topic) +$ git rebase --onto origin/master $fork_point topic</code></pre> </div></div> </div> </div>
diff --git a/git-merge-file.html b/git-merge-file.html index 4929331..1289d50 100644 --- a/git-merge-file.html +++ b/git-merge-file.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-merge-file(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -760,29 +758,29 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p><em>git merge-file</em> incorporates all changes that lead from the <tt><base-file></tt> -to <tt><other-file></tt> into <tt><current-file></tt>. The result ordinarily goes into -<tt><current-file></tt>. <em>git merge-file</em> is useful for combining separate changes -to an original. Suppose <tt><base-file></tt> is the original, and both -<tt><current-file></tt> and <tt><other-file></tt> are modifications of <tt><base-file></tt>, +<div class="paragraph"><p><em>git merge-file</em> incorporates all changes that lead from the <code><base-file></code> +to <code><other-file></code> into <code><current-file></code>. The result ordinarily goes into +<code><current-file></code>. <em>git merge-file</em> is useful for combining separate changes +to an original. Suppose <code><base-file></code> is the original, and both +<code><current-file></code> and <code><other-file></code> are modifications of <code><base-file></code>, then <em>git merge-file</em> combines both changes.</p></div> -<div class="paragraph"><p>A conflict occurs if both <tt><current-file></tt> and <tt><other-file></tt> have changes +<div class="paragraph"><p>A conflict occurs if both <code><current-file></code> and <code><other-file></code> have changes in a common segment of lines. If a conflict is found, <em>git merge-file</em> normally outputs a warning and brackets the conflict with lines containing <<<<<<< and >>>>>>> markers. A typical conflict will look like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><<<<<<< A +<pre><code><<<<<<< A lines in file A ======= lines in file B ->>>>>>> B</tt></pre> +>>>>>>> B</code></pre> </div></div> <div class="paragraph"><p>If there are conflicts, the user should edit the result and delete one of -the alternatives. When <tt>--ours</tt>, <tt>--theirs</tt>, or <tt>--union</tt> option is in effect, -however, these conflicts are resolved favouring lines from <tt><current-file></tt>, -lines from <tt><other-file></tt>, or lines from both respectively. The length of the -conflict markers can be given with the <tt>--marker-size</tt> option.</p></div> +the alternatives. When <code>--ours</code>, <code>--theirs</code>, or <code>--union</code> option is in effect, +however, these conflicts are resolved favouring lines from <code><current-file></code>, +lines from <code><other-file></code>, or lines from both respectively. The length of the +conflict markers can be given with the <code>--marker-size</code> option.</p></div> <div class="paragraph"><p>The exit value of this program is negative on error, and the number of conflicts otherwise. If the merge was clean, the exit value is 0.</p></div> <div class="paragraph"><p><em>git merge-file</em> is designed to be a minimal clone of RCS <em>merge</em>; that is, it @@ -802,7 +800,7 @@ This option may be given up to three times, and specifies labels to be used in place of the corresponding file names in conflict reports. That is, - <tt>git merge-file -L x -L y -L z a b c</tt> generates output that + <code>git merge-file -L x -L y -L z a b c</code> generates output that looks like it came from files x, y and z instead of from files a, b and c. </p> @@ -813,7 +811,7 @@ <dd> <p> Send results to standard output instead of overwriting - <tt><current-file></tt>. + <code><current-file></code>. </p> </dd> <dt class="hdlist1"> @@ -855,7 +853,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>git merge-file README.my README README.upstream</tt> +<code>git merge-file README.my README README.upstream</code> </dt> <dd> <p> @@ -864,12 +862,12 @@ </p> </dd> <dt class="hdlist1"> -<tt>git merge-file -L a -L b -L c tmp/a123 tmp/b234 tmp/c345</tt> +<code>git merge-file -L a -L b -L c tmp/a123 tmp/b234 tmp/c345</code> </dt> <dd> <p> merges tmp/a123 and tmp/c345 with the base tmp/b234, but uses labels - <tt>a</tt> and <tt>c</tt> instead of <tt>tmp/a123</tt> and <tt>tmp/c345</tt>. + <code>a</code> and <code>c</code> instead of <code>tmp/a123</code> and <code>tmp/c345</code>. </p> </dd> </dl></div>
diff --git a/git-merge-index.html b/git-merge-index.html index 7610d5e..50be0c9 100644 --- a/git-merge-index.html +++ b/git-merge-index.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-merge-index(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -820,24 +818,24 @@ <div class="paragraph"><p>Examples:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>torvalds@ppc970:~/merge-test> git merge-index cat MM +<pre><code>torvalds@ppc970:~/merge-test> git merge-index cat MM This is MM from the original tree. # original This is modified MM in the branch A. # merge1 This is modified MM in the branch B. # merge2 -This is modified MM in the branch B. # current contents</tt></pre> +This is modified MM in the branch B. # current contents</code></pre> </div></div> <div class="paragraph"><p>or</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>torvalds@ppc970:~/merge-test> git merge-index cat AA MM +<pre><code>torvalds@ppc970:~/merge-test> git merge-index cat AA MM cat: : No such file or directory This is added AA in the branch A. This is added AA in the branch B. This is added AA in the branch B. -fatal: merge program failed</tt></pre> +fatal: merge program failed</code></pre> </div></div> <div class="paragraph"><p>where the latter example shows how <em>git merge-index</em> will stop trying to -merge once anything has returned an error (i.e., <tt>cat</tt> returned an error +merge once anything has returned an error (i.e., <code>cat</code> returned an error for the AA file, because it didn’t exist in the original, and thus <em>git merge-index</em> didn’t even try to merge the MM thing).</p></div> </div>
diff --git a/git-merge-one-file.html b/git-merge-one-file.html index b41cc5a..c0dad67 100644 --- a/git-merge-one-file.html +++ b/git-merge-one-file.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-merge-one-file(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-merge-tree.html b/git-merge-tree.html index 17e1ea2..d4d5c31 100644 --- a/git-merge-tree.html +++ b/git-merge-tree.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-merge-tree(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-mergetool--lib.html b/git-mergetool--lib.html index 1149149..33b2d36 100644 --- a/git-mergetool--lib.html +++ b/git-mergetool--lib.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-mergetool--lib(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -762,9 +760,9 @@ This documentation is meant for people who are studying the Porcelain-ish scripts and/or are writing new ones.</p></div> <div class="paragraph"><p>The <em>git-mergetool--lib</em> scriptlet is designed to be sourced (using -<tt>.</tt>) by other shell scripts to set up functions for working +<code>.</code>) by other shell scripts to set up functions for working with Git merge tools.</p></div> -<div class="paragraph"><p>Before sourcing <em>git-mergetool--lib</em>, your script must set <tt>TOOL_MODE</tt> +<div class="paragraph"><p>Before sourcing <em>git-mergetool--lib</em>, your script must set <code>TOOL_MODE</code> to define the operation mode for the functions listed below. <em>diff</em> and <em>merge</em> are valid values.</p></div> </div>
diff --git a/git-mergetool.html b/git-mergetool.html index b88de16..4eba3be 100644 --- a/git-mergetool.html +++ b/git-mergetool.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-mergetool(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -758,7 +756,7 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>Use <tt>git mergetool</tt> to run one of several merge utilities to resolve +<div class="paragraph"><p>Use <code>git mergetool</code> to run one of several merge utilities to resolve merge conflicts. It is typically run after <em>git merge</em>.</p></div> <div class="paragraph"><p>If one or more <file> parameters are given, the merge tool program will be run to resolve differences on each file (skipping those without @@ -781,35 +779,35 @@ <p> Use the merge resolution program specified by <tool>. Valid values include emerge, gvimdiff, kdiff3, - meld, vimdiff, and tortoisemerge. Run <tt>git mergetool --tool-help</tt> + meld, vimdiff, and tortoisemerge. Run <code>git mergetool --tool-help</code> for the list of valid <tool> settings. </p> <div class="paragraph"><p>If a merge resolution program is not specified, <em>git mergetool</em> -will use the configuration variable <tt>merge.tool</tt>. If the -configuration variable <tt>merge.tool</tt> is not set, <em>git mergetool</em> +will use the configuration variable <code>merge.tool</code>. If the +configuration variable <code>merge.tool</code> is not set, <em>git mergetool</em> will pick a suitable default.</p></div> <div class="paragraph"><p>You can explicitly provide a full path to the tool by setting the -configuration variable <tt>mergetool.<tool>.path</tt>. For example, you +configuration variable <code>mergetool.<tool>.path</code>. For example, you can configure the absolute path to kdiff3 by setting -<tt>mergetool.kdiff3.path</tt>. Otherwise, <em>git mergetool</em> assumes the +<code>mergetool.kdiff3.path</code>. Otherwise, <em>git mergetool</em> assumes the tool is available in PATH.</p></div> <div class="paragraph"><p>Instead of running one of the known merge tool programs, <em>git mergetool</em> can be customized to run an alternative program by specifying the command line to invoke in a configuration -variable <tt>mergetool.<tool>.cmd</tt>.</p></div> +variable <code>mergetool.<tool>.cmd</code>.</p></div> <div class="paragraph"><p>When <em>git mergetool</em> is invoked with this tool (either through the -<tt>-t</tt> or <tt>--tool</tt> option or the <tt>merge.tool</tt> configuration -variable) the configured command line will be invoked with <tt>$BASE</tt> +<code>-t</code> or <code>--tool</code> option or the <code>merge.tool</code> configuration +variable) the configured command line will be invoked with <code>$BASE</code> set to the name of a temporary file containing the common base for -the merge, if available; <tt>$LOCAL</tt> set to the name of a temporary +the merge, if available; <code>$LOCAL</code> set to the name of a temporary file containing the contents of the file on the current branch; -<tt>$REMOTE</tt> set to the name of a temporary file containing the -contents of the file to be merged, and <tt>$MERGED</tt> set to the name +<code>$REMOTE</code> set to the name of a temporary file containing the +contents of the file to be merged, and <code>$MERGED</code> set to the name of the file to which the merge tool should write the result of the merge resolution.</p></div> <div class="paragraph"><p>If the custom merge tool correctly indicates the success of a merge resolution with its exit code, then the configuration -variable <tt>mergetool.<tool>.trustExitCode</tt> can be set to <tt>true</tt>. +variable <code>mergetool.<tool>.trustExitCode</code> can be set to <code>true</code>. Otherwise, <em>git mergetool</em> will prompt the user to indicate the success of the resolution after the custom tool has exited.</p></div> </dd> @@ -818,7 +816,7 @@ </dt> <dd> <p> - Print a list of merge tools that may be used with <tt>--tool</tt>. + Print a list of merge tools that may be used with <code>--tool</code>. </p> </dd> <dt class="hdlist1"> @@ -832,8 +830,8 @@ Don’t prompt before each invocation of the merge resolution program. This is the default if the merge resolution program is - explicitly specified with the <tt>--tool</tt> option or with the - <tt>merge.tool</tt> configuration variable. + explicitly specified with the <code>--tool</code> option or with the + <code>merge.tool</code> configuration variable. </p> </dd> <dt class="hdlist1"> @@ -851,11 +849,11 @@ <div class="sect1"> <h2 id="_temporary_files">TEMPORARY FILES</h2> <div class="sectionbody"> -<div class="paragraph"><p><tt>git mergetool</tt> creates <tt>*.orig</tt> backup files while resolving merges. +<div class="paragraph"><p><code>git mergetool</code> creates <code>*.orig</code> backup files while resolving merges. These are safe to remove once a file has been merged and its -<tt>git mergetool</tt> session has completed.</p></div> -<div class="paragraph"><p>Setting the <tt>mergetool.keepBackup</tt> configuration variable to <tt>false</tt> -causes <tt>git mergetool</tt> to automatically remove the backup as files +<code>git mergetool</code> session has completed.</p></div> +<div class="paragraph"><p>Setting the <code>mergetool.keepBackup</code> configuration variable to <code>false</code> +causes <code>git mergetool</code> to automatically remove the backup as files are successfully merged.</p></div> </div> </div>
diff --git a/git-mktag.html b/git-mktag.html index 78a5a49..3ad0e7c 100644 --- a/git-mktag.html +++ b/git-mktag.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-mktag(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -769,13 +767,13 @@ <div class="paragraph"><p>A tag signature file has a very simple fixed format: four lines of</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>object <sha1> +<pre><code>object <sha1> type <typename> tag <tagname> -tagger <tagger></tt></pre> +tagger <tagger></code></pre> </div></div> <div class="paragraph"><p>followed by some <em>optional</em> free-form message (some tags created -by older Git may not have <tt>tagger</tt> line). The message, when +by older Git may not have <code>tagger</code> line). The message, when exists, is separated by a blank line from the header. The message part may contain a signature that Git itself doesn’t care about, but that can be verified with gpg.</p></div>
diff --git a/git-mktree.html b/git-mktree.html index dd33da2..eb9c96c 100644 --- a/git-mktree.html +++ b/git-mktree.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-mktree(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -758,7 +756,7 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>Reads standard input in non-recursive <tt>ls-tree</tt> output format, and creates +<div class="paragraph"><p>Reads standard input in non-recursive <code>ls-tree</code> output format, and creates a tree object. The order of the tree entries is normalised by mktree so pre-sorting the input is not required. The object name of the tree object built is written to the standard output.</p></div> @@ -773,7 +771,7 @@ </dt> <dd> <p> - Read the NUL-terminated <tt>ls-tree -z</tt> output instead. + Read the NUL-terminated <code>ls-tree -z</code> output instead. </p> </dd> <dt class="hdlist1">
diff --git a/git-mv.html b/git-mv.html index b435487..6789836 100644 --- a/git-mv.html +++ b/git-mv.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-mv(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -761,8 +759,8 @@ <div class="paragraph"><p>Move or rename a file, directory or symlink.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git mv [-v] [-f] [-n] [-k] <source> <destination> -git mv [-v] [-f] [-n] [-k] <source> ... <destination directory></tt></pre> +<pre><code>git mv [-v] [-f] [-n] [-k] <source> <destination> +git mv [-v] [-f] [-n] [-k] <source> ... <destination directory></code></pre> </div></div> <div class="paragraph"><p>In the first form, it renames <source>, which must exist and be either a file, symlink or directory, to <destination>.
diff --git a/git-name-rev.html b/git-name-rev.html index 4ae48fd..373ce4f 100644 --- a/git-name-rev.html +++ b/git-name-rev.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-name-rev(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -811,7 +809,7 @@ Instead of printing both the SHA-1 and the name, print only the name. If given with --tags the usual tag prefix of "tags/" is also omitted from the name, matching the output - of <tt>git-describe</tt> more closely. + of <code>git-describe</code> more closely. </p> </dd> <dt class="hdlist1"> @@ -820,7 +818,7 @@ <dd> <p> Die with error code != 0 when a reference is undefined, - instead of printing <tt>undefined</tt>. + instead of printing <code>undefined</code>. </p> </dd> <dt class="hdlist1"> @@ -844,14 +842,14 @@ <div class="paragraph"><p>Enter <em>git name-rev</em>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a -33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940</tt></pre> +<pre><code>% git name-rev 33db5f4d9027a10e477ccf054b2c1ab94f74c85a +33db5f4d9027a10e477ccf054b2c1ab94f74c85a tags/v0.99~940</code></pre> </div></div> <div class="paragraph"><p>Now you are wiser, because you know that it happened 940 revisions before v0.99.</p></div> <div class="paragraph"><p>Another nice thing you can do is:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>% git log | git name-rev --stdin</tt></pre> +<pre><code>% git log | git name-rev --stdin</code></pre> </div></div> </div> </div>
diff --git a/git-notes.html b/git-notes.html index 92a3c5e..67ea474 100644 --- a/git-notes.html +++ b/git-notes.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-notes(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -771,7 +769,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Adds, removes, or reads notes attached to objects, without touching the objects themselves.</p></div> -<div class="paragraph"><p>By default, notes are saved to and read from <tt>refs/notes/commits</tt>, but +<div class="paragraph"><p>By default, notes are saved to and read from <code>refs/notes/commits</code>, but this default can be overridden. See the OPTIONS, CONFIGURATION, and ENVIRONMENT sections below. If this ref does not exist, it will be quietly created when it is first needed to store a note.</p></div> @@ -780,9 +778,9 @@ the original commit message. To distinguish these notes from the message stored in the commit object, the notes are indented like the message, after an unindented line saying "Notes (<refname>):" (or -"Notes:" for <tt>refs/notes/commits</tt>).</p></div> -<div class="paragraph"><p>Notes can also be added to patches prepared with <tt>git format-patch</tt> by -using the <tt>--notes</tt> option. Such notes are added as a patch commentary +"Notes:" for <code>refs/notes/commits</code>).</p></div> +<div class="paragraph"><p>Notes can also be added to patches prepared with <code>git format-patch</code> by +using the <code>--notes</code> option. Such notes are added as a patch commentary after a three dash separator line.</p></div> <div class="paragraph"><p>To change which notes are shown by <em>git log</em>, see the "notes.displayRef" configuration in <a href="git-log.html">git-log(1)</a>.</p></div> @@ -811,10 +809,10 @@ <dd> <p> Add notes for a given object (defaults to HEAD). Abort if the - object already has notes (use <tt>-f</tt> to overwrite existing notes). - However, if you’re using <tt>add</tt> interactively (using an editor + object already has notes (use <code>-f</code> to overwrite existing notes). + However, if you’re using <code>add</code> interactively (using an editor to supply the notes contents), then - instead of aborting - - the existing notes will be opened in the editor (like the <tt>edit</tt> + the existing notes will be opened in the editor (like the <code>edit</code> subcommand). </p> </dd> @@ -827,16 +825,16 @@ Abort if the second object already has notes, or if the first object has none (use -f to overwrite existing notes to the second object). This subcommand is equivalent to: - <tt>git notes add [-f] -C $(git notes list <from-object>) <to-object></tt> + <code>git notes add [-f] -C $(git notes list <from-object>) <to-object></code> </p> -<div class="paragraph"><p>In <tt>--stdin</tt> mode, take lines in the format</p></div> +<div class="paragraph"><p>In <code>--stdin</code> mode, take lines in the format</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><from-object> SP <to-object> [ SP <rest> ] LF</tt></pre> +<pre><code><from-object> SP <to-object> [ SP <rest> ] LF</code></pre> </div></div> <div class="paragraph"><p>on standard input, and copy the notes from each <from-object> to its -corresponding <to-object>. (The optional <tt><rest></tt> is ignored so that -the command can read the input given to the <tt>post-rewrite</tt> hook.)</p></div> +corresponding <to-object>. (The optional <code><rest></code> is ignored so that +the command can read the input given to the <code>post-rewrite</code> hook.)</p></div> </dd> <dt class="hdlist1"> append @@ -876,7 +874,7 @@ <div class="paragraph"><p>If conflicts arise and a strategy for automatically resolving conflicting notes (see the -s/--strategy option) is not given, the "manual" resolver is used. This resolver checks out the -conflicting notes in a special worktree (<tt>.git/NOTES_MERGE_WORKTREE</tt>), +conflicting notes in a special worktree (<code>.git/NOTES_MERGE_WORKTREE</code>), and instructs the user to manually resolve the conflicts there. When done, the user can either finalize the merge with <em>git notes merge --commit</em>, or abort the merge with @@ -890,7 +888,7 @@ Remove the notes for given objects (defaults to HEAD). When giving zero or one object from the command line, this is equivalent to specifying an empty note message to - the <tt>edit</tt> subcommand. + the <code>edit</code> subcommand. </p> </dd> <dt class="hdlist1"> @@ -938,9 +936,9 @@ <dd> <p> Use the given note message (instead of prompting). - If multiple <tt>-m</tt> options are given, their values + If multiple <code>-m</code> options are given, their values are concatenated as separate paragraphs. - Lines starting with <tt>#</tt> and empty lines other than a + Lines starting with <code>#</code> and empty lines other than a single line between paragraphs will be stripped out. </p> </dd> @@ -954,7 +952,7 @@ <p> Take the note message from the given file. Use <em>-</em> to read the note message from the standard input. - Lines starting with <tt>#</tt> and empty lines other than a + Lines starting with <code>#</code> and empty lines other than a single line between paragraphs will be stripped out. </p> </dd> @@ -967,7 +965,7 @@ <dd> <p> Take the given blob object (for example, another note) as the - note message. (Use <tt>git notes copy <object></tt> instead to + note message. (Use <code>git notes copy <object></code> instead to copy notes between objects.) </p> </dd> @@ -990,7 +988,7 @@ <p> Manipulate the notes tree in <ref>. This overrides <em>GIT_NOTES_REF</em> and the "core.notesRef" configuration. The ref - is taken to be in <tt>refs/notes/</tt> if it is not qualified. + is taken to be in <code>refs/notes/</code> if it is not qualified. </p> </dd> <dt class="hdlist1"> @@ -1099,18 +1097,18 @@ contains "files" whose paths are the object names for the objects they describe, with some directory separators included for performance reasons <span class="footnote"><br />[Permitted pathnames have the form -<em>ab</em><tt>/</tt><em>cd</em><tt>/</tt><em>ef</em><tt>/</tt><em>…</em><tt>/</tt><em>abcdef…</em>: a sequence of directory +<em>ab</em><code>/</code><em>cd</em><code>/</code><em>ef</em><code>/</code><em>…</em><code>/</code><em>abcdef…</em>: a sequence of directory names of two hexadecimal digits each followed by a filename with the rest of the object ID.]<br /></span>.</p></div> <div class="paragraph"><p>Every notes change creates a new commit at the specified notes ref. You can therefore inspect the history of the notes by invoking, e.g., -<tt>git log -p notes/commits</tt>. Currently the commit message only records +<code>git log -p notes/commits</code>. Currently the commit message only records which operation triggered the update, and the commit authorship is determined according to the usual rules (see <a href="git-commit.html">git-commit(1)</a>). These details may change in the future.</p></div> <div class="paragraph"><p>It is also permitted for a notes ref to point directly to a tree object, in which case the history of the notes can be read with -<tt>git log -p -g <refname></tt>.</p></div> +<code>git log -p -g <refname></code>.</p></div> </div> </div> <div class="sect1"> @@ -1118,7 +1116,7 @@ <div class="sectionbody"> <div class="paragraph"><p>The default notes merge strategy is "manual", which checks out conflicting notes in a special work tree for resolving notes conflicts -(<tt>.git/NOTES_MERGE_WORKTREE</tt>), and instructs the user to resolve the +(<code>.git/NOTES_MERGE_WORKTREE</code>), and instructs the user to resolve the conflicts in that work tree. When done, the user can either finalize the merge with <em>git notes merge --commit</em>, or abort the merge with @@ -1148,24 +1146,24 @@ available at the time a commit was written.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git notes add -m 'Tested-by: Johannes Sixt <j6t@kdbg.org>' 72a144e2 +<pre><code>$ git notes add -m 'Tested-by: Johannes Sixt <j6t@kdbg.org>' 72a144e2 $ git show -s 72a144e [...] Signed-off-by: Junio C Hamano <gitster@pobox.com> Notes: - Tested-by: Johannes Sixt <j6t@kdbg.org></tt></pre> + Tested-by: Johannes Sixt <j6t@kdbg.org></code></pre> </div></div> <div class="paragraph"><p>In principle, a note is a regular Git blob, and any kind of (non-)format is accepted. You can binary-safely create notes from arbitrary files using <em>git hash-object</em>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ cc *.c +<pre><code>$ cc *.c $ blob=$(git hash-object -w a.out) -$ git notes --ref=built add -C "$blob" HEAD</tt></pre> +$ git notes --ref=built add -C "$blob" HEAD</code></pre> </div></div> -<div class="paragraph"><p>(You cannot simply use <tt>git notes --ref=built add -F a.out HEAD</tt> +<div class="paragraph"><p>(You cannot simply use <code>git notes --ref=built add -F a.out HEAD</code> because that is not binary-safe.) Of course, it doesn’t make much sense to display non-text-format notes with <em>git log</em>, so if you use such notes, you’ll probably need to write @@ -1182,7 +1180,7 @@ <dd> <p> Notes ref to read and manipulate instead of - <tt>refs/notes/commits</tt>. Must be an unabbreviated ref name. + <code>refs/notes/commits</code>. Must be an unabbreviated ref name. This setting can be overridden through the environment and command line. </p> @@ -1193,7 +1191,7 @@ <dd> <p> Which ref (or refs, if a glob or specified more than once), in - addition to the default set by <tt>core.notesRef</tt> or + addition to the default set by <code>core.notesRef</code> or <em>GIT_NOTES_REF</em>, to read notes from when showing commit messages with the <em>git log</em> family of commands. This setting can be overridden on the command line or by the @@ -1206,10 +1204,10 @@ </dt> <dd> <p> - When rewriting commits with <command> (currently <tt>amend</tt> or - <tt>rebase</tt>), if this variable is <tt>false</tt>, git will not copy + When rewriting commits with <command> (currently <code>amend</code> or + <code>rebase</code>), if this variable is <code>false</code>, git will not copy notes from the original to the rewritten commit. Defaults to - <tt>true</tt>. See also "<tt>notes.rewriteRef</tt>" below. + <code>true</code>. See also "<code>notes.rewriteRef</code>" below. </p> <div class="paragraph"><p>This setting can be overridden by the <em>GIT_NOTES_REWRITE_REF</em> environment variable.</p></div> @@ -1220,10 +1218,10 @@ <dd> <p> When copying notes during a rewrite, what to do if the target - commit already has a note. Must be one of <tt>overwrite</tt>, - <tt>concatenate</tt>, and <tt>ignore</tt>. Defaults to <tt>concatenate</tt>. + commit already has a note. Must be one of <code>overwrite</code>, + <code>concatenate</code>, and <code>ignore</code>. Defaults to <code>concatenate</code>. </p> -<div class="paragraph"><p>This setting can be overridden with the <tt>GIT_NOTES_REWRITE_MODE</tt> +<div class="paragraph"><p>This setting can be overridden with the <code>GIT_NOTES_REWRITE_MODE</code> environment variable.</p></div> </dd> <dt class="hdlist1"> @@ -1252,8 +1250,8 @@ </dt> <dd> <p> - Which ref to manipulate notes from, instead of <tt>refs/notes/commits</tt>. - This overrides the <tt>core.notesRef</tt> setting. + Which ref to manipulate notes from, instead of <code>refs/notes/commits</code>. + This overrides the <code>core.notesRef</code> setting. </p> </dd> <dt class="hdlist1"> @@ -1262,10 +1260,10 @@ <dd> <p> Colon-delimited list of refs or globs indicating which refs, - in addition to the default from <tt>core.notesRef</tt> or + in addition to the default from <code>core.notesRef</code> or <em>GIT_NOTES_REF</em>, to read notes from when showing commit messages. - This overrides the <tt>notes.displayRef</tt> setting. + This overrides the <code>notes.displayRef</code> setting. </p> <div class="paragraph"><p>A warning will be issued for refs that do not exist, but a glob that does not match any refs is silently ignored.</p></div> @@ -1277,8 +1275,8 @@ <p> When copying notes during a rewrite, what to do if the target commit already has a note. - Must be one of <tt>overwrite</tt>, <tt>concatenate</tt>, and <tt>ignore</tt>. - This overrides the <tt>core.rewriteMode</tt> setting. + Must be one of <code>overwrite</code>, <code>concatenate</code>, and <code>ignore</code>. + This overrides the <code>core.rewriteMode</code> setting. </p> </dd> <dt class="hdlist1"> @@ -1291,7 +1289,7 @@ refs or globs. </p> <div class="paragraph"><p>If not set in the environment, the list of notes to copy depends -on the <tt>notes.rewrite.<command></tt> and <tt>notes.rewriteRef</tt> settings.</p></div> +on the <code>notes.rewrite.<command></code> and <code>notes.rewriteRef</code> settings.</p></div> </dd> </dl></div> </div>
diff --git a/git-p4.html b/git-p4.html index d611a6c..46464a4 100644 --- a/git-p4.html +++ b/git-p4.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-p4(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -782,7 +780,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git p4 clone //depot/path/project</tt></pre> +<pre><code>$ git p4 clone //depot/path/project</code></pre> </div></div> </li> <li> @@ -791,9 +789,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ cd project +<pre><code>$ cd project $ vi foo.h -$ git commit -a -m "edited foo.h"</tt></pre> +$ git commit -a -m "edited foo.h"</code></pre> </div></div> </li> <li> @@ -803,7 +801,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git p4 rebase</tt></pre> +<pre><code>$ git p4 rebase</code></pre> </div></div> </li> <li> @@ -812,7 +810,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git p4 submit</tt></pre> +<pre><code>$ git p4 submit</code></pre> </div></div> </li> </ul></div> @@ -827,7 +825,7 @@ from an existing p4 repository:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git p4 clone //depot/path/project</tt></pre> +<pre><code>$ git p4 clone //depot/path/project</code></pre> </div></div> <div class="paragraph"><p>This:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -852,7 +850,7 @@ the depot path:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git p4 clone //depot/path/project@all</tt></pre> +<pre><code>$ git p4 clone //depot/path/project@all</code></pre> </div></div> </div> <div class="sect2"> @@ -861,17 +859,17 @@ be included in the Git repository using:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git p4 sync</tt></pre> +<pre><code>$ git p4 sync</code></pre> </div></div> <div class="paragraph"><p>This command finds new changes in p4 and imports them as Git commits.</p></div> <div class="paragraph"><p>P4 repositories can be added to an existing Git repository using <em>git p4 sync</em> too:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ mkdir repo-git +<pre><code>$ mkdir repo-git $ cd repo-git $ git init -$ git p4 sync //path/in/your/perforce/depot</tt></pre> +$ git p4 sync //path/in/your/perforce/depot</code></pre> </div></div> <div class="paragraph"><p>This imports the specified depot into <em>refs/remotes/p4/master</em> in an existing Git repository. The @@ -895,7 +893,7 @@ local commits on top of updated p4 changes.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git p4 rebase</tt></pre> +<pre><code>$ git p4 rebase</code></pre> </div></div> </div> <div class="sect2"> @@ -909,12 +907,12 @@ the <em>p4/master</em> branch, use:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git p4 submit</tt></pre> +<pre><code>$ git p4 submit</code></pre> </div></div> <div class="paragraph"><p>To specify a branch other than the current one, use:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git p4 submit topicbranch</tt></pre> +<pre><code>$ git p4 submit topicbranch</code></pre> </div></div> <div class="paragraph"><p>The upstream reference is generally <em>refs/remotes/p4/master</em>, but can be overridden using the <em>--origin=</em> command-line option.</p></div> @@ -975,8 +973,8 @@ Git repository:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git init - $ git p4 sync --branch=refs/remotes/p4/proj2 //depot/proj2</tt></pre> +<pre><code> $ git init + $ git p4 sync --branch=refs/remotes/p4/proj2 //depot/proj2</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -1305,18 +1303,18 @@ <div class="paragraph"><p>For example, if the P4 repository structure is:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>//depot/main/... -//depot/branch1/...</tt></pre> +<pre><code>//depot/main/... +//depot/branch1/...</code></pre> </div></div> <div class="paragraph"><p>And "p4 branch -o branch1" shows a View line that looks like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>//depot/main/... //depot/branch1/...</tt></pre> +<pre><code>//depot/main/... //depot/branch1/...</code></pre> </div></div> <div class="paragraph"><p>Then this <em>git p4 clone</em> command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git p4 clone --detect-branches //depot@all</tt></pre> +<pre><code>git p4 clone --detect-branches //depot@all</code></pre> </div></div> <div class="paragraph"><p>produces a separate branch in <em>refs/remotes/p4/</em> for //depot/main, called <em>master</em>, and one for //depot/branch1 called <em>depot/branch1</em>.</p></div> @@ -1331,10 +1329,10 @@ occur with:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git init depot +<pre><code>git init depot cd depot git config git-p4.branchList main:branch1 -git p4 clone --detect-branches //depot@all .</tt></pre> +git p4 clone --detect-branches //depot@all .</code></pre> </div></div> </div> </div> @@ -1443,8 +1441,8 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>git config git-p4.branchList main:branchA -git config --add git-p4.branchList main:branchB</tt></pre> +<pre><code>git config git-p4.branchList main:branchA +git config --add git-p4.branchList main:branchB</code></pre> </div></div> </dd> <dt class="hdlist1">
diff --git a/git-pack-objects.html b/git-pack-objects.html index 6b90737..80c26d4 100644 --- a/git-pack-objects.html +++ b/git-pack-objects.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-pack-objects(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -817,10 +815,10 @@ <p> Read the revision arguments from the standard input, instead of individual object names. The revision arguments are processed - the same way as <em>git rev-list</em> with the <tt>--objects</tt> flag - uses its <tt>commit</tt> arguments to build the list of objects it + the same way as <em>git rev-list</em> with the <code>--objects</code> flag + uses its <code>commit</code> arguments to build the list of objects it outputs. The objects on the resulting list are packed. - Besides revisions, <tt>--not</tt> or <tt>--shallow <SHA-1></tt> lines are + Besides revisions, <code>--not</code> or <code>--shallow <SHA-1></code> lines are also accepted. </p> </dd> @@ -829,7 +827,7 @@ </dt> <dd> <p> - This implies <tt>--revs</tt>. When processing the list of + This implies <code>--revs</code>. When processing the list of revision arguments read from the standard input, limit the objects packed to those that are not already packed. </p> @@ -839,9 +837,9 @@ </dt> <dd> <p> - This implies <tt>--revs</tt>. In addition to the list of + This implies <code>--revs</code>. In addition to the list of revision arguments read from the standard input, pretend - as if all refs under <tt>refs/</tt> are specified to be + as if all refs under <code>refs/</code> are specified to be included. </p> </dd> @@ -880,14 +878,14 @@ </dt> <dd> <p> - This option provides an additional limit on top of <tt>--window</tt>; + This option provides an additional limit on top of <code>--window</code>; the window size will dynamically scale down so as to not take up more than <em><n></em> bytes in memory. This is useful in repositories with a mix of large and small objects to not run out of memory with a large window, but still be able to take advantage of the large window for the smaller objects. The size can be suffixed with "k", "m", or "g". - <tt>--window-memory=0</tt> makes memory usage unlimited, which is the + <code>--window-memory=0</code> makes memory usage unlimited, which is the default. </p> </dd> @@ -900,7 +898,7 @@ "k", "m", or "g". The minimum size allowed is limited to 1 MiB. If specified, multiple packfiles may be created. The default is unlimited, unless the config variable - <tt>pack.packSizeLimit</tt> is set. + <code>pack.packSizeLimit</code> is set. </p> </dd> <dt class="hdlist1"> @@ -1035,7 +1033,7 @@ </p> <div class="paragraph"><p>Note: A thin pack violates the packed archive format by omitting required objects and is thus unusable by Git without making it -self-contained. Use <tt>git index-pack --fix-thin</tt> +self-contained. Use <code>git index-pack --fix-thin</code> (see <a href="git-index-pack.html">git-index-pack(1)</a>) to restore the self-contained property.</p></div> </dd> <dt class="hdlist1"> @@ -1053,10 +1051,10 @@ length, this option typically shrinks the resulting packfile by 3-5 per-cent. </p> -<div class="paragraph"><p>Note: Porcelain commands such as <tt>git gc</tt> (see <a href="git-gc.html">git-gc(1)</a>), -<tt>git repack</tt> (see <a href="git-repack.html">git-repack(1)</a>) pass this option by default +<div class="paragraph"><p>Note: Porcelain commands such as <code>git gc</code> (see <a href="git-gc.html">git-gc(1)</a>), +<code>git repack</code> (see <a href="git-repack.html">git-repack(1)</a>) pass this option by default in modern Git when they put objects in your repository into pack files. -So does <tt>git bundle</tt> (see <a href="git-bundle.html">git-bundle(1)</a>) when it creates a bundle.</p></div> +So does <code>git bundle</code> (see <a href="git-bundle.html">git-bundle(1)</a>) when it creates a bundle.</p></div> </dd> <dt class="hdlist1"> --threads=<n>
diff --git a/git-pack-redundant.html b/git-pack-redundant.html index ca2e68f..c25f1fd 100644 --- a/git-pack-redundant.html +++ b/git-pack-redundant.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-pack-redundant(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -760,7 +758,7 @@ <div class="sectionbody"> <div class="paragraph"><p>This program computes which packs in your repository are redundant. The output is suitable for piping to -<tt>xargs rm</tt> if you are in the root of the repository.</p></div> +<code>xargs rm</code> if you are in the root of the repository.</p></div> <div class="paragraph"><p><em>git pack-redundant</em> accepts a list of objects on standard input. Any objects given will be ignored when checking which packs are required. This makes the following command useful when wanting to remove packs which contain unreachable
diff --git a/git-pack-refs.html b/git-pack-refs.html index 7be5f20..699cf0f 100644 --- a/git-pack-refs.html +++ b/git-pack-refs.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-pack-refs(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -760,7 +758,7 @@ <div class="sectionbody"> <div class="paragraph"><p>Traditionally, tips of branches and tags (collectively known as <em>refs</em>) were stored one file per ref in a (sub)directory -under <tt>$GIT_DIR/refs</tt> +under <code>$GIT_DIR/refs</code> directory. While many branch tips tend to be updated often, most tags and some branch tips are never updated. When a repository has hundreds or thousands of tags, this @@ -768,19 +766,19 @@ performance.</p></div> <div class="paragraph"><p>This command is used to solve the storage and performance problem by storing the refs in a single file, -<tt>$GIT_DIR/packed-refs</tt>. When a ref is missing from the -traditional <tt>$GIT_DIR/refs</tt> directory hierarchy, it is looked +<code>$GIT_DIR/packed-refs</code>. When a ref is missing from the +traditional <code>$GIT_DIR/refs</code> directory hierarchy, it is looked up in this file and used if found.</p></div> <div class="paragraph"><p>Subsequent updates to branches always create new files under -<tt>$GIT_DIR/refs</tt> directory hierarchy.</p></div> +<code>$GIT_DIR/refs</code> directory hierarchy.</p></div> <div class="paragraph"><p>A recommended practice to deal with a repository with too many -refs is to pack its refs with <tt>--all</tt> once, and -occasionally run <tt>git pack-refs</tt>. Tags are by +refs is to pack its refs with <code>--all</code> once, and +occasionally run <code>git pack-refs</code>. Tags are by definition stationary and are not expected to change. Branch -heads will be packed with the initial <tt>pack-refs --all</tt>, but +heads will be packed with the initial <code>pack-refs --all</code>, but only the currently active branch heads will become unpacked, -and the next <tt>pack-refs</tt> (without <tt>--all</tt>) will leave them +and the next <code>pack-refs</code> (without <code>--all</code>) will leave them unpacked.</p></div> </div> </div> @@ -806,7 +804,7 @@ </dt> <dd> <p> -The command usually removes loose refs under <tt>$GIT_DIR/refs</tt> +The command usually removes loose refs under <code>$GIT_DIR/refs</code> hierarchy after packing them. This option tells it not to. </p> </dd>
diff --git a/git-parse-remote.html b/git-parse-remote.html index e548251..d4e1c8c 100644 --- a/git-parse-remote.html +++ b/git-parse-remote.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-parse-remote(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-patch-id.html b/git-patch-id.html index 43676ce..442055d 100644 --- a/git-patch-id.html +++ b/git-patch-id.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-patch-id(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -802,7 +800,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>This is the default if patchid.stable is set to true.</tt></pre> +<pre><code>This is the default if patchid.stable is set to true.</code></pre> </div></div> </li> </ul></div> @@ -820,7 +818,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>This is the default.</tt></pre> +<pre><code>This is the default.</code></pre> </div></div> </dd> <dt class="hdlist1">
diff --git a/git-prune.html b/git-prune.html index 65a2f0f..9fb66a8 100644 --- a/git-prune.html +++ b/git-prune.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-prune(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -768,7 +766,7 @@ </tr></table> </div> <div class="paragraph"><p>This runs <em>git fsck --unreachable</em> using all the refs -available in <tt>refs/</tt>, optionally with additional set of +available in <code>refs/</code>, optionally with additional set of objects specified on the command line, and prunes all unpacked objects unreachable from any of these head objects from the object database. In addition, it @@ -841,10 +839,10 @@ <div class="sectionbody"> <div class="paragraph"><p>To prune objects not used by your repository or another that borrows from your repository via its -<tt>.git/objects/info/alternates</tt>:</p></div> +<code>.git/objects/info/alternates</code>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git prune $(cd ../another && git rev-parse --all)</tt></pre> +<pre><code>$ git prune $(cd ../another && git rev-parse --all)</code></pre> </div></div> </div> </div>
diff --git a/git-pull.html b/git-pull.html index 823d365..5bcacfb 100644 --- a/git-pull.html +++ b/git-pull.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-pull(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -759,12 +757,12 @@ <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"><p>Incorporates changes from a remote repository into the current -branch. In its default mode, <tt>git pull</tt> is shorthand for -<tt>git fetch</tt> followed by <tt>git merge FETCH_HEAD</tt>.</p></div> +branch. In its default mode, <code>git pull</code> is shorthand for +<code>git fetch</code> followed by <code>git merge FETCH_HEAD</code>.</p></div> <div class="paragraph"><p>More precisely, <em>git pull</em> runs <em>git fetch</em> with the given parameters and calls <em>git merge</em> to merge the retrieved branch heads into the current branch. -With <tt>--rebase</tt>, it runs <em>git rebase</em> instead of <em>git merge</em>.</p></div> +With <code>--rebase</code>, it runs <em>git rebase</em> instead of <em>git merge</em>.</p></div> <div class="paragraph"><p><repository> should be the name of a remote repository as passed to <a href="git-fetch.html">git-fetch(1)</a>. <refspec> can name an arbitrary remote ref (for example, the name of a tag) or even @@ -773,32 +771,32 @@ but usually it is the name of a branch in the remote repository.</p></div> <div class="paragraph"><p>Default values for <repository> and <branch> are read from the "remote" and "merge" configuration for the current branch -as set by <a href="git-branch.html">git-branch(1)</a> <tt>--track</tt>.</p></div> +as set by <a href="git-branch.html">git-branch(1)</a> <code>--track</code>.</p></div> <div class="paragraph"><p>Assume the following history exists and the current branch is -"<tt>master</tt>":</p></div> +"<code>master</code>":</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> A---B---C master on origin +<pre><code> A---B---C master on origin / D---E---F---G master ^ - origin/master in your repository</tt></pre> + origin/master in your repository</code></pre> </div></div> -<div class="paragraph"><p>Then "<tt>git pull</tt>" will fetch and replay the changes from the remote -<tt>master</tt> branch since it diverged from the local <tt>master</tt> (i.e., <tt>E</tt>) -until its current commit (<tt>C</tt>) on top of <tt>master</tt> and record the +<div class="paragraph"><p>Then "<code>git pull</code>" will fetch and replay the changes from the remote +<code>master</code> branch since it diverged from the local <code>master</code> (i.e., <code>E</code>) +until its current commit (<code>C</code>) on top of <code>master</code> and record the result in a new commit along with the names of the two parent commits and a log message from the user describing the changes.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> A---B---C origin/master +<pre><code> A---B---C origin/master / \ - D---E---F---G---H master</tt></pre> + D---E---F---G---H master</code></pre> </div></div> <div class="paragraph"><p>See <a href="git-merge.html">git-merge(1)</a> for details, including how conflicts are presented and handled.</p></div> <div class="paragraph"><p>In Git 1.7.0 or later, to cancel a conflicting merge, use -<tt>git reset --merge</tt>. <strong>Warning</strong>: In older versions of Git, running <em>git pull</em> +<code>git reset --merge</code>. <strong>Warning</strong>: In older versions of Git, running <em>git pull</em> with uncommitted changes is discouraged: while possible, it leaves you in a state that may be hard to back out of in the case of a conflict.</p></div> <div class="paragraph"><p>If any of the remote changes overlap with local uncommitted changes, @@ -883,15 +881,15 @@ <p> Invoke an editor before committing successful mechanical merge to further edit the auto-generated merge message, so that the user - can explain and justify the merge. The <tt>--no-edit</tt> option can be + can explain and justify the merge. The <code>--no-edit</code> option can be used to accept the auto-generated message (this is generally discouraged). </p> <div class="paragraph"><p>Older scripts may depend on the historical behaviour of not allowing the user to edit the merge log message. They will see an editor opened when -they run <tt>git merge</tt>. To make it easier to adjust such scripts to the -updated behaviour, the environment variable <tt>GIT_MERGE_AUTOEDIT</tt> can be -set to <tt>no</tt> at the beginning of them.</p></div> +they run <code>git merge</code>. To make it easier to adjust such scripts to the +updated behaviour, the environment variable <code>GIT_MERGE_AUTOEDIT</code> can be +set to <code>no</code> at the beginning of them.</p></div> </dd> <dt class="hdlist1"> --ff @@ -919,7 +917,7 @@ <dd> <p> Refuse to merge and exit with a non-zero status unless the - current <tt>HEAD</tt> is already up-to-date or the merge can be + current <code>HEAD</code> is already up-to-date or the merge can be resolved as a fast-forward. </p> </dd> @@ -965,8 +963,8 @@ <p> Produce the working tree and index state as if a real merge happened (except for the merge information), but do not actually - make a commit, move the <tt>HEAD</tt>, or record <tt>$GIT_DIR/MERGE_HEAD</tt> - (to cause the next <tt>git commit</tt> command to create a merge + make a commit, move the <code>HEAD</code>, or record <code>$GIT_DIR/MERGE_HEAD</code> + (to cause the next <code>git commit</code> command to create a merge commit). This allows you to create a single commit on top of the current branch whose effect is the same as merging another branch (or more in case of an octopus). @@ -984,7 +982,7 @@ <p> Use the given merge strategy; can be supplied more than once to specify them in the order they should be tried. - If there is no <tt>-s</tt> option, a built-in list of strategies + If there is no <code>-s</code> option, a built-in list of strategies is used instead (<em>git merge-recursive</em> when merging a single head, <em>git merge-octopus</em> otherwise). </p> @@ -1040,12 +1038,12 @@ to avoid rebasing non-local changes. </p> <div class="paragraph"><p>When preserve, also rebase the current branch on top of the upstream -branch, but pass <tt>--preserve-merges</tt> along to <tt>git rebase</tt> so that +branch, but pass <code>--preserve-merges</code> along to <code>git rebase</code> so that locally created merge commits will not be flattened.</p></div> <div class="paragraph"><p>When false, merge the current branch into the upstream branch.</p></div> -<div class="paragraph"><p>See <tt>pull.rebase</tt>, <tt>branch.<name>.rebase</tt> and <tt>branch.autosetuprebase</tt> in -<a href="git-config.html">git-config(1)</a> if you want to make <tt>git pull</tt> always use -<tt>--rebase</tt> instead of merging.</p></div> +<div class="paragraph"><p>See <code>pull.rebase</code>, <code>branch.<name>.rebase</code> and <code>branch.autosetuprebase</code> in +<a href="git-config.html">git-config(1)</a> if you want to make <code>git pull</code> always use +<code>--rebase</code> instead of merging.</p></div> <div class="admonitionblock"> <table><tr> <td class="icon"> @@ -1088,8 +1086,8 @@ <dd> <p> Append ref names and object names of fetched refs to the - existing contents of <tt>.git/FETCH_HEAD</tt>. Without this - option old data in <tt>.git/FETCH_HEAD</tt> will be overwritten. + existing contents of <code>.git/FETCH_HEAD</code>. Without this + option old data in <code>.git/FETCH_HEAD</code> will be overwritten. </p> </dd> <dt class="hdlist1"> @@ -1098,7 +1096,7 @@ <dd> <p> Deepen or shorten the history of a <em>shallow</em> repository created by - <tt>git clone</tt> with <tt>--depth=<depth></tt> option (see <a href="git-clone.html">git-clone(1)</a>) + <code>git clone</code> with <code>--depth=<depth></code> option (see <a href="git-clone.html">git-clone(1)</a>) to the specified number of commits from the tip of each remote branch history. Tags for the deepened commits are not fetched. </p> @@ -1121,7 +1119,7 @@ <dd> <p> By default when fetching from a shallow repository, - <tt>git fetch</tt> refuses refs that require updating + <code>git fetch</code> refuses refs that require updating .git/shallow. This option updates .git/shallow and accept such refs. </p> @@ -1134,10 +1132,10 @@ </dt> <dd> <p> - When <em>git fetch</em> is used with <tt><rbranch>:<lbranch></tt> + When <em>git fetch</em> is used with <code><rbranch>:<lbranch></code> refspec, it refuses to update the local branch - <tt><lbranch></tt> unless the remote branch <tt><rbranch></tt> it - fetches is a descendant of <tt><lbranch></tt>. This option + <code><lbranch></code> unless the remote branch <code><rbranch></code> it + fetches is a descendant of <code><lbranch></code>. This option overrides that check. </p> </dd> @@ -1220,19 +1218,19 @@ <p> Specifies which refs to fetch and which local refs to update. When no <refspec>s appear on the command line, the refs to fetch - are read from <tt>remote.<repository>.fetch</tt> variables instead + are read from <code>remote.<repository>.fetch</code> variables instead (see <a href="git-fetch.html">git-fetch(1)</a>). </p> <div class="paragraph"><p>The format of a <refspec> parameter is an optional plus -<tt>+</tt>, followed by the source ref <src>, followed -by a colon <tt>:</tt>, followed by the destination ref <dst>. +<code>+</code>, followed by the source ref <src>, followed +by a colon <code>:</code>, followed by the destination ref <dst>. The colon can be omitted when <dst> is empty.</p></div> -<div class="paragraph"><p><tt>tag <tag></tt> means the same as <tt>refs/tags/<tag>:refs/tags/<tag></tt>; +<div class="paragraph"><p><code>tag <tag></code> means the same as <code>refs/tags/<tag>:refs/tags/<tag></code>; it requests fetching everything up to the given tag.</p></div> <div class="paragraph"><p>The remote ref that matches <src> is fetched, and if <dst> is not empty string, the local ref that matches it is fast-forwarded using <src>. -If the optional plus <tt>+</tt> is used, the local ref +If the optional plus <code>+</code> is used, the local ref is updated even if it does not result in a fast-forward update.</p></div> <div class="admonitionblock"> @@ -1245,7 +1243,7 @@ its new tip will not be descendant of its previous tip (as stored in your remote-tracking branch the last time you fetched). You would want -to use the <tt>+</tt> sign to indicate non-fast-forward updates +to use the <code>+</code> sign to indicate non-fast-forward updates will be needed for such branches. There is no way to determine or declare that a branch will be made available in a repository with this behavior; the pulling user simply @@ -1259,7 +1257,7 @@ </td> <td class="content">There is a difference between listing multiple <refspec> directly on <em>git pull</em> command line and having multiple -<tt>remote.<repository>.fetch</tt> entries in your configuration +<code>remote.<repository>.fetch</code> entries in your configuration for a <repository> and running a <em>git pull</em> command without any explicit <refspec> parameters. <refspec>s listed explicitly on the command line are always @@ -1268,7 +1266,7 @@ an Octopus merge. On the other hand, if you do not list any explicit <refspec> parameter on the command line, <em>git pull</em> will fetch all the <refspec>s it finds in the -<tt>remote.<repository>.fetch</tt> configuration and merge +<code>remote.<repository>.fetch</code> configuration and merge only the first <refspec> found into the current branch. This is because making an Octopus from remote refs is rarely done, while keeping track @@ -1332,8 +1330,8 @@ </ul></div> <div class="paragraph"><p>This syntax is only recognized if there are no slashes before the first colon. This helps differentiate a local path that contains a -colon. For example the local path <tt>foo:bar</tt> could be specified as an -absolute path or <tt>./foo:bar</tt> to avoid being misinterpreted as an ssh +colon. For example the local path <code>foo:bar</code> could be specified as an +absolute path or <code>./foo:bar</code> to avoid being misinterpreted as an ssh url.</p></div> <div class="paragraph"><p>The ssh and git protocols additionally support ~username expansion:</p></div> <div class="ulist"><ul> @@ -1390,15 +1388,15 @@ configuration section of the form:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "<actual url base>"] - insteadOf = <other url base></tt></pre> +<pre><code> [url "<actual url base>"] + insteadOf = <other url base></code></pre> </div></div> <div class="paragraph"><p>For example, with this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "git://git.host.xz/"] +<pre><code> [url "git://git.host.xz/"] insteadOf = host.xz:/path/to/ - insteadOf = work:</tt></pre> + insteadOf = work:</code></pre> </div></div> <div class="paragraph"><p>a URL like "work:repo.git" or like "host.xz:/path/to/repo.git" will be rewritten in any context that takes a URL to be "git://git.host.xz/repo.git".</p></div> @@ -1406,14 +1404,14 @@ configuration section of the form:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "<actual url base>"] - pushInsteadOf = <other url base></tt></pre> +<pre><code> [url "<actual url base>"] + pushInsteadOf = <other url base></code></pre> </div></div> <div class="paragraph"><p>For example, with this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [url "ssh://example.org/"] - pushInsteadOf = git://example.org/</tt></pre> +<pre><code> [url "ssh://example.org/"] + pushInsteadOf = git://example.org/</code></pre> </div></div> <div class="paragraph"><p>a URL like "git://example.org/path/to/repo.git" will be rewritten to "ssh://example.org/path/to/repo.git" for pushes, but pulls will still @@ -1424,21 +1422,21 @@ <h2 id="_remotes_a_id_remotes_a">REMOTES<a id="REMOTES"></a></h2> <div class="sectionbody"> <div class="paragraph"><p>The name of one of the following can be used instead -of a URL as <tt><repository></tt> argument:</p></div> +of a URL as <code><repository></code> argument:</p></div> <div class="ulist"><ul> <li> <p> -a remote in the Git configuration file: <tt>$GIT_DIR/config</tt>, +a remote in the Git configuration file: <code>$GIT_DIR/config</code>, </p> </li> <li> <p> -a file in the <tt>$GIT_DIR/remotes</tt> directory, or +a file in the <code>$GIT_DIR/remotes</code> directory, or </p> </li> <li> <p> -a file in the <tt>$GIT_DIR/branches</tt> directory. +a file in the <code>$GIT_DIR/branches</code> directory. </p> </li> </ul></div> @@ -1448,65 +1446,65 @@ <h3 id="_named_remote_in_configuration_file">Named remote in configuration file</h3> <div class="paragraph"><p>You can choose to provide the name of a remote which you had previously configured using <a href="git-remote.html">git-remote(1)</a>, <a href="git-config.html">git-config(1)</a> -or even by a manual edit to the <tt>$GIT_DIR/config</tt> file. The URL of +or even by a manual edit to the <code>$GIT_DIR/config</code> file. The URL of this remote will be used to access the repository. The refspec of this remote will be used by default when you do not provide a refspec on the command line. The entry in the config file would appear like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [remote "<name>"] +<pre><code> [remote "<name>"] url = <url> pushurl = <pushurl> push = <refspec> - fetch = <refspec></tt></pre> + fetch = <refspec></code></pre> </div></div> -<div class="paragraph"><p>The <tt><pushurl></tt> is used for pushes only. It is optional and defaults -to <tt><url></tt>.</p></div> +<div class="paragraph"><p>The <code><pushurl></code> is used for pushes only. It is optional and defaults +to <code><url></code>.</p></div> </div> <div class="sect2"> -<h3 id="_named_file_in_tt_git_dir_remotes_tt">Named file in <tt>$GIT_DIR/remotes</tt></h3> +<h3 id="_named_file_in_code_git_dir_remotes_code">Named file in <code>$GIT_DIR/remotes</code></h3> <div class="paragraph"><p>You can choose to provide the name of a -file in <tt>$GIT_DIR/remotes</tt>. The URL +file in <code>$GIT_DIR/remotes</code>. The URL in this file will be used to access the repository. The refspec in this file will be used as default when you do not provide a refspec on the command line. This file should have the following format:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> URL: one of the above URL format +<pre><code> URL: one of the above URL format Push: <refspec> - Pull: <refspec></tt></pre> + Pull: <refspec></code></pre> </div></div> -<div class="paragraph"><p><tt>Push:</tt> lines are used by <em>git push</em> and -<tt>Pull:</tt> lines are used by <em>git pull</em> and <em>git fetch</em>. -Multiple <tt>Push:</tt> and <tt>Pull:</tt> lines may +<div class="paragraph"><p><code>Push:</code> lines are used by <em>git push</em> and +<code>Pull:</code> lines are used by <em>git pull</em> and <em>git fetch</em>. +Multiple <code>Push:</code> and <code>Pull:</code> lines may be specified for additional branch mappings.</p></div> </div> <div class="sect2"> -<h3 id="_named_file_in_tt_git_dir_branches_tt">Named file in <tt>$GIT_DIR/branches</tt></h3> +<h3 id="_named_file_in_code_git_dir_branches_code">Named file in <code>$GIT_DIR/branches</code></h3> <div class="paragraph"><p>You can choose to provide the name of a -file in <tt>$GIT_DIR/branches</tt>. +file in <code>$GIT_DIR/branches</code>. The URL in this file will be used to access the repository. This file should have the following format:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> <url>#<head></tt></pre> +<pre><code> <url>#<head></code></pre> </div></div> -<div class="paragraph"><p><tt><url></tt> is required; <tt>#<head></tt> is optional.</p></div> +<div class="paragraph"><p><code><url></code> is required; <code>#<head></code> is optional.</p></div> <div class="paragraph"><p>Depending on the operation, git will use one of the following refspecs, if you don’t provide one on the command line. -<tt><branch></tt> is the name of this file in <tt>$GIT_DIR/branches</tt> and -<tt><head></tt> defaults to <tt>master</tt>.</p></div> +<code><branch></code> is the name of this file in <code>$GIT_DIR/branches</code> and +<code><head></code> defaults to <code>master</code>.</p></div> <div class="paragraph"><p>git fetch uses:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> refs/heads/<head>:refs/heads/<branch></tt></pre> +<pre><code> refs/heads/<head>:refs/heads/<branch></code></pre> </div></div> <div class="paragraph"><p>git push uses:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> HEAD:refs/heads/<head></tt></pre> +<pre><code> HEAD:refs/heads/<head></code></pre> </div></div> </div> </div> @@ -1514,10 +1512,10 @@ <div class="sect1"> <h2 id="_merge_strategies">MERGE STRATEGIES</h2> <div class="sectionbody"> -<div class="paragraph"><p>The merge mechanism (<tt>git merge</tt> and <tt>git pull</tt> commands) allows the -backend <em>merge strategies</em> to be chosen with <tt>-s</tt> option. Some strategies -can also take their own options, which can be passed by giving <tt>-X<option></tt> -arguments to <tt>git merge</tt> and/or <tt>git pull</tt>.</p></div> +<div class="paragraph"><p>The merge mechanism (<code>git merge</code> and <code>git pull</code> commands) allows the +backend <em>merge strategies</em> to be chosen with <code>-s</code> option. Some strategies +can also take their own options, which can be passed by giving <code>-X<option></code> +arguments to <code>git merge</code> and/or <code>git pull</code>.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> resolve @@ -1581,7 +1579,7 @@ to avoid mismerges that sometimes occur due to unimportant matching lines (e.g., braces from distinct functions). Use this when the branches to be merged have diverged wildly. - See also <a href="git-diff.html">git-diff(1)</a> <tt>--patience</tt>. + See also <a href="git-diff.html">git-diff(1)</a> <code>--patience</code>. </p> </dd> <dt class="hdlist1"> @@ -1592,7 +1590,7 @@ Tells <em>merge-recursive</em> to use a different diff algorithm, which can help avoid mismerges that occur due to unimportant matching lines (such as braces from distinct functions). See also - <a href="git-diff.html">git-diff(1)</a> <tt>--diff-algorithm</tt>. + <a href="git-diff.html">git-diff(1)</a> <code>--diff-algorithm</code>. </p> </dd> <dt class="hdlist1"> @@ -1609,8 +1607,8 @@ Treats lines with the indicated type of whitespace change as unchanged for the sake of a three-way merge. Whitespace changes mixed with other changes to a line are not ignored. - See also <a href="git-diff.html">git-diff(1)</a> <tt>-b</tt>, <tt>-w</tt>, and - <tt>--ignore-space-at-eol</tt>. + See also <a href="git-diff.html">git-diff(1)</a> <code>-b</code>, <code>-w</code>, and + <code>--ignore-space-at-eol</code>. </p> <div class="ulist"><ul> <li> @@ -1650,8 +1648,8 @@ </dt> <dd> <p> - Disables the <tt>renormalize</tt> option. This overrides the - <tt>merge.renormalize</tt> configuration variable. + Disables the <code>renormalize</code> option. This overrides the + <code>merge.renormalize</code> configuration variable. </p> </dd> <dt class="hdlist1"> @@ -1660,7 +1658,7 @@ <dd> <p> Controls the similarity threshold used for rename detection. - See also <a href="git-diff.html">git-diff(1)</a> <tt>-M</tt>. + See also <a href="git-diff.html">git-diff(1)</a> <code>-M</code>. </p> </dd> <dt class="hdlist1"> @@ -1727,46 +1725,46 @@ <div class="sect1"> <h2 id="_default_behaviour">DEFAULT BEHAVIOUR</h2> <div class="sectionbody"> -<div class="paragraph"><p>Often people use <tt>git pull</tt> without giving any parameter. -Traditionally, this has been equivalent to saying <tt>git pull -origin</tt>. However, when configuration <tt>branch.<name>.remote</tt> is -present while on branch <tt><name></tt>, that value is used instead of -<tt>origin</tt>.</p></div> +<div class="paragraph"><p>Often people use <code>git pull</code> without giving any parameter. +Traditionally, this has been equivalent to saying <code>git pull +origin</code>. However, when configuration <code>branch.<name>.remote</code> is +present while on branch <code><name></code>, that value is used instead of +<code>origin</code>.</p></div> <div class="paragraph"><p>In order to determine what URL to use to fetch from, the value -of the configuration <tt>remote.<origin>.url</tt> is consulted -and if there is not any such variable, the value on <tt>URL: ` line -in `$GIT_DIR/remotes/<origin></tt> file is used.</p></div> +of the configuration <code>remote.<origin>.url</code> is consulted +and if there is not any such variable, the value on <code>URL: ` line +in `$GIT_DIR/remotes/<origin></code> file is used.</p></div> <div class="paragraph"><p>In order to determine what remote branches to fetch (and optionally store in the remote-tracking branches) when the command is run without any refspec parameters on the command line, values -of the configuration variable <tt>remote.<origin>.fetch</tt> are -consulted, and if there aren’t any, <tt>$GIT_DIR/remotes/<origin></tt> +of the configuration variable <code>remote.<origin>.fetch</code> are +consulted, and if there aren’t any, <code>$GIT_DIR/remotes/<origin></code> file is consulted and its `Pull: ` lines are used. In addition to the refspec formats described in the OPTIONS section, you can have a globbing refspec that looks like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>refs/heads/*:refs/remotes/origin/*</tt></pre> +<pre><code>refs/heads/*:refs/remotes/origin/*</code></pre> </div></div> <div class="paragraph"><p>A globbing refspec must have a non-empty RHS (i.e. must store what were fetched in remote-tracking branches), and its LHS and RHS -must end with <tt>/*</tt>. The above specifies that all remote +must end with <code>/*</code>. The above specifies that all remote branches are tracked using remote-tracking branches in -<tt>refs/remotes/origin/</tt> hierarchy under the same name.</p></div> +<code>refs/remotes/origin/</code> hierarchy under the same name.</p></div> <div class="paragraph"><p>The rule to determine which remote branch to merge after fetching is a bit involved, in order not to break backward compatibility.</p></div> <div class="paragraph"><p>If explicit refspecs were given on the command -line of <tt>git pull</tt>, they are all merged.</p></div> -<div class="paragraph"><p>When no refspec was given on the command line, then <tt>git pull</tt> +line of <code>git pull</code>, they are all merged.</p></div> +<div class="paragraph"><p>When no refspec was given on the command line, then <code>git pull</code> uses the refspec from the configuration or -<tt>$GIT_DIR/remotes/<origin></tt>. In such cases, the following +<code>$GIT_DIR/remotes/<origin></code>. In such cases, the following rules apply:</p></div> <div class="olist arabic"><ol class="arabic"> <li> <p> -If <tt>branch.<name>.merge</tt> configuration for the current - branch <tt><name></tt> exists, that is the name of the branch at the +If <code>branch.<name>.merge</code> configuration for the current + branch <code><name></code> exists, that is the name of the branch at the remote site that is merged. </p> </li> @@ -1795,7 +1793,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git pull, git pull origin</tt></pre> +<pre><code>$ git pull, git pull origin</code></pre> </div></div> <div class="paragraph"><p>Normally the branch merged in is the HEAD of the remote repository, but the choice is determined by the branch.<name>.remote and @@ -1803,19 +1801,19 @@ </li> <li> <p> -Merge into the current branch the remote branch <tt>next</tt>: +Merge into the current branch the remote branch <code>next</code>: </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git pull origin next</tt></pre> +<pre><code>$ git pull origin next</code></pre> </div></div> -<div class="paragraph"><p>This leaves a copy of <tt>next</tt> temporarily in FETCH_HEAD, but +<div class="paragraph"><p>This leaves a copy of <code>next</code> temporarily in FETCH_HEAD, but does not update any remote-tracking branches. Using remote-tracking branches, the same can be done by invoking fetch and merge:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git fetch origin -$ git merge origin/next</tt></pre> +<pre><code>$ git fetch origin +$ git merge origin/next</code></pre> </div></div> </li> </ul></div>
diff --git a/git-read-tree.html b/git-read-tree.html index 2cf246b..4a0256f 100644 --- a/git-read-tree.html +++ b/git-read-tree.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-read-tree(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -765,8 +763,8 @@ but does not actually <strong>update</strong> any of the files it "caches". (see: <a href="git-checkout-index.html">git-checkout-index(1)</a>)</p></div> <div class="paragraph"><p>Optionally, it can merge a tree into the index, perform a -fast-forward (i.e. 2-way) merge, or a 3-way merge, with the <tt>-m</tt> -flag. When used with <tt>-m</tt>, the <tt>-u</tt> flag causes it to also update +fast-forward (i.e. 2-way) merge, or a 3-way merge, with the <code>-m</code> +flag. When used with <code>-m</code>, the <code>-u</code> flag causes it to also update the files in the work tree with the result of the merge.</p></div> <div class="paragraph"><p>Trivial merges are done by <em>git read-tree</em> itself. Only conflicting paths will be in unmerged state when <em>git read-tree</em> returns.</p></div> @@ -887,9 +885,9 @@ <dd> <p> Keep the current index contents, and read the contents - of the named tree-ish under the directory at <tt><prefix></tt>. + of the named tree-ish under the directory at <code><prefix></code>. The command will refuse to overwrite entries that already - existed in the original index file. Note that the <tt><prefix>/</tt> + existed in the original index file. Note that the <code><prefix>/</code> value must end with a slash. </p> </dd> @@ -898,7 +896,7 @@ </dt> <dd> <p> - When running the command with <tt>-u</tt> and <tt>-m</tt> options, the + When running the command with <code>-u</code> and <code>-m</code> options, the merge result may need to overwrite paths that are not tracked in the current branch. The command usually refuses to proceed with the merge to avoid losing such a @@ -906,8 +904,8 @@ way. For example, it often happens that the other branch added a file that used to be a generated file in your branch, and the safety valve triggers when you try - to switch to that branch after you ran <tt>make</tt> but before - running <tt>make clean</tt> to remove the generated file. This + to switch to that branch after you ran <code>make</code> but before + running <code>make clean</code> to remove the generated file. This option tells the command to read per-directory exclude file (usually <em>.gitignore</em>) and allows such an untracked but explicitly ignored file to be overwritten. @@ -918,7 +916,7 @@ </dt> <dd> <p> - Instead of writing the results out to <tt>$GIT_INDEX_FILE</tt>, + Instead of writing the results out to <code>$GIT_INDEX_FILE</code>, write the resulting index in the named file. While the command is operating, the original index file is locked with the same mechanism as usual. The file must allow @@ -935,7 +933,7 @@ </dt> <dd> <p> - Disable sparse checkout support even if <tt>core.sparseCheckout</tt> + Disable sparse checkout support even if <code>core.sparseCheckout</code> is true. </p> </dd> @@ -962,26 +960,26 @@ <div class="sect1"> <h2 id="_merging">Merging</h2> <div class="sectionbody"> -<div class="paragraph"><p>If <tt>-m</tt> is specified, <em>git read-tree</em> can perform 3 kinds of +<div class="paragraph"><p>If <code>-m</code> is specified, <em>git read-tree</em> can perform 3 kinds of merge, a single tree merge if only 1 tree is given, a fast-forward merge with 2 trees, or a 3-way merge if 3 trees are provided.</p></div> <div class="sect2"> <h3 id="_single_tree_merge">Single Tree Merge</h3> <div class="paragraph"><p>If only 1 tree is specified, <em>git read-tree</em> operates as if the user did not -specify <tt>-m</tt>, except that if the original index has an entry for a +specify <code>-m</code>, except that if the original index has an entry for a given pathname, and the contents of the path match with the tree being read, the stat info from the index is used. (In other words, the index’s stat()s take precedence over the merged tree’s).</p></div> -<div class="paragraph"><p>That means that if you do a <tt>git read-tree -m <newtree></tt> followed by a -<tt>git checkout-index -f -u -a</tt>, the <em>git checkout-index</em> only checks out +<div class="paragraph"><p>That means that if you do a <code>git read-tree -m <newtree></code> followed by a +<code>git checkout-index -f -u -a</code>, the <em>git checkout-index</em> only checks out the stuff that really changed.</p></div> <div class="paragraph"><p>This is used to avoid unnecessary false hits when <em>git diff-files</em> is run after <em>git read-tree</em>.</p></div> </div> <div class="sect2"> <h3 id="_two_tree_merge">Two Tree Merge</h3> -<div class="paragraph"><p>Typically, this is invoked as <tt>git read-tree -m $H $M</tt>, where $H +<div class="paragraph"><p>Typically, this is invoked as <code>git read-tree -m $H $M</code>, where $H is the head commit of the current repository, and $M is the head of a foreign tree, which is simply ahead of $H (i.e. we are in a fast-forward situation).</p></div> @@ -1000,14 +998,14 @@ </p> </li> </ol></div> -<div class="paragraph"><p>In this case, the <tt>git read-tree -m $H $M</tt> command makes sure +<div class="paragraph"><p>In this case, the <code>git read-tree -m $H $M</code> command makes sure that no local change is lost as the result of this "merge". Here are the "carry forward" rules, where "I" denotes the index, "clean" means that index and work tree coincide, and "exists"/"nothing" refer to the presence of a path in the specified commit:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> I H M Result +<pre><code> I H M Result ------------------------------------------------------- 0 nothing nothing nothing (does not happen) 1 nothing nothing exists use M @@ -1015,46 +1013,46 @@ 3 nothing exists exists, use M if "initial checkout", H == M keep index otherwise exists, fail - H != M</tt></pre> + H != M</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt> clean I==H I==M +<pre><code> clean I==H I==M ------------------ 4 yes N/A N/A nothing nothing keep index -5 no N/A N/A nothing nothing keep index</tt></pre> +5 no N/A N/A nothing nothing keep index</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>6 yes N/A yes nothing exists keep index +<pre><code>6 yes N/A yes nothing exists keep index 7 no N/A yes nothing exists keep index 8 yes N/A no nothing exists fail -9 no N/A no nothing exists fail</tt></pre> +9 no N/A no nothing exists fail</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>10 yes yes N/A exists nothing remove path from index +<pre><code>10 yes yes N/A exists nothing remove path from index 11 no yes N/A exists nothing fail 12 yes no N/A exists nothing fail -13 no no N/A exists nothing fail</tt></pre> +13 no no N/A exists nothing fail</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt> clean (H==M) +<pre><code> clean (H==M) ------ 14 yes exists exists keep index -15 no exists exists keep index</tt></pre> +15 no exists exists keep index</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt> clean I==H I==M (H!=M) +<pre><code> clean I==H I==M (H!=M) ------------------ 16 yes no no exists exists fail 17 no no no exists exists fail 18 yes no yes exists exists keep index 19 no no yes exists exists keep index 20 yes yes no exists exists use M -21 no yes no exists exists fail</tt></pre> +21 no yes no exists exists fail</code></pre> </div></div> <div class="paragraph"><p>In all "keep index" cases, the index entry stays as in the original index file. If the entry is not up to date, @@ -1062,13 +1060,13 @@ operating under the -u flag.</p></div> <div class="paragraph"><p>When this form of <em>git read-tree</em> returns successfully, you can see which of the "local changes" that you made were carried forward by running -<tt>git diff-index --cached $M</tt>. Note that this does not -necessarily match what <tt>git diff-index --cached $H</tt> would have +<code>git diff-index --cached $M</code>. Note that this does not +necessarily match what <code>git diff-index --cached $H</code> would have produced before such a two tree merge. This is because of cases 18 and 19 --- if you already had the changes in $M (e.g. maybe -you picked it up via e-mail in a patch form), <tt>git diff-index ---cached $H</tt> would have told you about the change before this -merge, but it would not show in <tt>git diff-index --cached $M</tt> +you picked it up via e-mail in a patch form), <code>git diff-index +--cached $H</code> would have told you about the change before this +merge, but it would not show in <code>git diff-index --cached $M</code> output after the two-tree merge.</p></div> <div class="paragraph"><p>Case 3 is slightly tricky and needs explanation. The result from this rule logically should be to remove the path if the user staged the removal @@ -1086,7 +1084,7 @@ <div class="paragraph"><p>This means that you can do</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git read-tree -m <tree1> <tree2> <tree3></tt></pre> +<pre><code>$ git read-tree -m <tree1> <tree2> <tree3></code></pre> </div></div> <div class="paragraph"><p>and you will end up with an index with all of the <tree1> entries in "stage1", all of the <tree2> entries in "stage2" and all of the @@ -1196,16 +1194,16 @@ committed last to your repository:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ JC=`git rev-parse --verify "HEAD^0"` -$ git checkout-index -f -u -a $JC</tt></pre> +<pre><code>$ JC=`git rev-parse --verify "HEAD^0"` +$ git checkout-index -f -u -a $JC</code></pre> </div></div> <div class="paragraph"><p>You do random edits, without running <em>git update-index</em>. And then you notice that the tip of your "upstream" tree has advanced since you pulled from him:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git fetch git://.... linus -$ LT=`git rev-parse FETCH_HEAD`</tt></pre> +<pre><code>$ git fetch git://.... linus +$ LT=`git rev-parse FETCH_HEAD`</code></pre> </div></div> <div class="paragraph"><p>Your work tree is still based on your HEAD ($JC), but you have some edits since. Three-way merge makes sure that you have not @@ -1213,10 +1211,10 @@ then does the right thing. So with the following sequence:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git read-tree -m -u `git merge-base $JC $LT` $JC $LT +<pre><code>$ git read-tree -m -u `git merge-base $JC $LT` $JC $LT $ git merge-index git-merge-one-file -a $ echo "Merge with Linus" | \ - git commit-tree `git write-tree` -p $JC -p $LT</tt></pre> + git commit-tree `git write-tree` -p $JC -p $LT</code></pre> </div></div> <div class="paragraph"><p>what you would commit is a pure merge between $JC and $LT without your work-in-progress changes, and your work tree would be @@ -1244,7 +1242,7 @@ Git whether a file in the working directory is worth looking at.</p></div> <div class="paragraph"><p><em>git read-tree</em> and other merge-based commands (<em>git merge</em>, <em>git checkout</em>…) can help maintaining the skip-worktree bitmap and working -directory update. <tt>$GIT_DIR/info/sparse-checkout</tt> is used to +directory update. <code>$GIT_DIR/info/sparse-checkout</code> is used to define the skip-worktree reference bitmap. When <em>git read-tree</em> needs to update the working directory, it resets the skip-worktree bit in the index based on this file, which uses the same syntax as .gitignore files. @@ -1253,27 +1251,27 @@ <div class="paragraph"><p>Then it compares the new skip-worktree value with the previous one. If skip-worktree turns from set to unset, it will add the corresponding file back. If it turns from unset to set, that file will be removed.</p></div> -<div class="paragraph"><p>While <tt>$GIT_DIR/info/sparse-checkout</tt> is usually used to specify what +<div class="paragraph"><p>While <code>$GIT_DIR/info/sparse-checkout</code> is usually used to specify what files are in, you can also specify what files are <em>not</em> in, using -negate patterns. For example, to remove the file <tt>unwanted</tt>:</p></div> +negate patterns. For example, to remove the file <code>unwanted</code>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>/* -!unwanted</tt></pre> +<pre><code>/* +!unwanted</code></pre> </div></div> <div class="paragraph"><p>Another tricky thing is fully repopulating the working directory when you no longer want sparse checkout. You cannot just disable "sparse checkout" because skip-worktree bits are still in the index and your working directory is still sparsely populated. You should re-populate the working -directory with the <tt>$GIT_DIR/info/sparse-checkout</tt> file content as +directory with the <code>$GIT_DIR/info/sparse-checkout</code> file content as follows:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>/*</tt></pre> +<pre><code>/*</code></pre> </div></div> <div class="paragraph"><p>Then you can disable sparse checkout. Sparse checkout support in <em>git read-tree</em> and similar commands is disabled by default. You need to -turn <tt>core.sparseCheckout</tt> on in order to have sparse checkout +turn <code>core.sparseCheckout</code> on in order to have sparse checkout support.</p></div> </div> </div>
diff --git a/git-reflog.html b/git-reflog.html index aa9ccd3..ac03c20 100644 --- a/git-reflog.html +++ b/git-reflog.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-reflog(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -770,23 +768,23 @@ <div class="paragraph"><p>Reflog is a mechanism to record when the tip of branches are updated. This command is to manage the information recorded in it.</p></div> <div class="paragraph"><p>The subcommand "expire" is used to prune older reflog entries. -Entries older than <tt>expire</tt> time, or entries older than -<tt>expire-unreachable</tt> time and not reachable from the current +Entries older than <code>expire</code> time, or entries older than +<code>expire-unreachable</code> time and not reachable from the current tip, are removed from the reflog. This is typically not used directly by the end users — instead, see <a href="git-gc.html">git-gc(1)</a>.</p></div> <div class="paragraph"><p>The subcommand "show" (which is also the default, in the absence of any subcommands) will take all the normal log options, and show the log of -the reference provided in the command-line (or <tt>HEAD</tt>, by default). +the reference provided in the command-line (or <code>HEAD</code>, by default). The reflog will cover all recent actions (HEAD reflog records branch switching -as well). It is an alias for <tt>git log -g --abbrev-commit --pretty=oneline</tt>; +as well). It is an alias for <code>git log -g --abbrev-commit --pretty=oneline</code>; see <a href="git-log.html">git-log(1)</a>.</p></div> <div class="paragraph"><p>The reflog is useful in various Git commands, to specify the old value -of a reference. For example, <tt>HEAD@{2}</tt> means "where HEAD used to be -two moves ago", <tt>master@{one.week.ago}</tt> means "where master used to +of a reference. For example, <code>HEAD@{2}</code> means "where HEAD used to be +two moves ago", <code>master@{one.week.ago}</code> means "where master used to point to one week ago", and so on. See <a href="gitrevisions.html">gitrevisions(7)</a> for more details.</p></div> <div class="paragraph"><p>To delete single entries from the reflog, use the subcommand "delete" -and specify the <em>exact</em> entry (e.g. "<tt>git reflog delete master@{2}</tt>").</p></div> +and specify the <em>exact</em> entry (e.g. "<code>git reflog delete master@{2}</code>").</p></div> </div> </div> <div class="sect1"> @@ -816,7 +814,7 @@ <dd> <p> Entries older than this time are pruned. Without the - option it is taken from configuration <tt>gc.reflogExpire</tt>, + option it is taken from configuration <code>gc.reflogExpire</code>, which in turn defaults to 90 days. --expire=all prunes entries regardless of their age; --expire=never turns off pruning of reachable entries (but see --expire-unreachable). @@ -830,7 +828,7 @@ Entries older than this time and not reachable from the current tip of the branch are pruned. Without the option it is taken from configuration - <tt>gc.reflogExpireUnreachable</tt>, which in turn defaults to + <code>gc.reflogExpireUnreachable</code>, which in turn defaults to 30 days. --expire-unreachable=all prunes unreachable entries regardless of their age; --expire-unreachable=never turns off early pruning of unreachable entries (but see @@ -860,7 +858,7 @@ <dd> <p> While expiring or deleting, adjust each reflog entry to ensure - that the <tt>old</tt> sha1 field points to the <tt>new</tt> sha1 field of the + that the <code>old</code> sha1 field points to the <code>new</code> sha1 field of the previous entry. </p> </dd>
diff --git a/git-relink.html b/git-relink.html index d9f6b45..a4797ae 100644 --- a/git-relink.html +++ b/git-relink.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-relink(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-remote-ext.html b/git-remote-ext.html index 89dcc08..9f91921 100644 --- a/git-remote-ext.html +++ b/git-remote-ext.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-remote-ext(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -876,7 +874,7 @@ <div class="paragraph"><p>This remote helper is transparently used by Git when you use commands such as "git fetch <URL>", "git clone <URL>", , "git push <URL>" or "git remote add <nick> <URL>", where <URL> -begins with <tt>ext::</tt>. Examples:</p></div> +begins with <code>ext::</code>. Examples:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> "ext::ssh -i /home/foo/.ssh/somekey user@host.example %S <em>foo/repo</em>"
diff --git a/git-remote-fd.html b/git-remote-fd.html index d9d27ea..fbf6d35 100644 --- a/git-remote-fd.html +++ b/git-remote-fd.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-remote-fd(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -790,7 +788,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>git fetch fd::17 master</tt> +<code>git fetch fd::17 master</code> </dt> <dd> <p> @@ -799,7 +797,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git fetch fd::17/foo master</tt> +<code>git fetch fd::17/foo master</code> </dt> <dd> <p> @@ -807,7 +805,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git push fd::7,8 master (as URL)</tt> +<code>git push fd::7,8 master (as URL)</code> </dt> <dd> <p> @@ -817,7 +815,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git push fd::7,8/bar master</tt> +<code>git push fd::7,8/bar master</code> </dt> <dd> <p>
diff --git a/git-remote-helpers.html b/git-remote-helpers.html index 5ad18e5..3d3f7f8 100644 --- a/git-remote-helpers.html +++ b/git-remote-helpers.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-remote-helpers</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-remote-testgit.html b/git-remote-testgit.html index 94829c4..9060ed2 100644 --- a/git-remote-testgit.html +++ b/git-remote-testgit.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-remote-testgit(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-remote.html b/git-remote.html index ffb9793..6a96063 100644 --- a/git-remote.html +++ b/git-remote.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-remote(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -785,7 +783,7 @@ <dd> <p> Be a little more verbose and show remote url after name. - NOTE: This must be placed between <tt>remote</tt> and <tt>subcommand</tt>. + NOTE: This must be placed between <code>remote</code> and <code>subcommand</code>. </p> </dd> </dl></div> @@ -803,29 +801,29 @@ <dd> <p> Adds a remote named <name> for the repository at -<url>. The command <tt>git fetch <name></tt> can then be used to create and +<url>. The command <code>git fetch <name></code> can then be used to create and update remote-tracking branches <name>/<branch>. </p> -<div class="paragraph"><p>With <tt>-f</tt> option, <tt>git fetch <name></tt> is run immediately after +<div class="paragraph"><p>With <code>-f</code> option, <code>git fetch <name></code> is run immediately after the remote information is set up.</p></div> -<div class="paragraph"><p>With <tt>--tags</tt> option, <tt>git fetch <name></tt> imports every tag from the +<div class="paragraph"><p>With <code>--tags</code> option, <code>git fetch <name></code> imports every tag from the remote repository.</p></div> -<div class="paragraph"><p>With <tt>--no-tags</tt> option, <tt>git fetch <name></tt> does not import tags from +<div class="paragraph"><p>With <code>--no-tags</code> option, <code>git fetch <name></code> does not import tags from the remote repository.</p></div> -<div class="paragraph"><p>With <tt>-t <branch></tt> option, instead of the default glob +<div class="paragraph"><p>With <code>-t <branch></code> option, instead of the default glob refspec for the remote to track all branches under -the <tt>refs/remotes/<name>/</tt> namespace, a refspec to track only <tt><branch></tt> -is created. You can give more than one <tt>-t <branch></tt> to track +the <code>refs/remotes/<name>/</code> namespace, a refspec to track only <code><branch></code> +is created. You can give more than one <code>-t <branch></code> to track multiple branches without grabbing all branches.</p></div> -<div class="paragraph"><p>With <tt>-m <master></tt> option, a symbolic-ref <tt>refs/remotes/<name>/HEAD</tt> is set -up to point at remote’s <tt><master></tt> branch. See also the set-head command.</p></div> -<div class="paragraph"><p>When a fetch mirror is created with <tt>--mirror=fetch</tt>, the refs will not +<div class="paragraph"><p>With <code>-m <master></code> option, a symbolic-ref <code>refs/remotes/<name>/HEAD</code> is set +up to point at remote’s <code><master></code> branch. See also the set-head command.</p></div> +<div class="paragraph"><p>When a fetch mirror is created with <code>--mirror=fetch</code>, the refs will not be stored in the <em>refs/remotes/</em> namespace, but rather everything in <em>refs/</em> on the remote will be directly mirrored into <em>refs/</em> in the local repository. This option only makes sense in bare repositories, because a fetch would overwrite any local commits.</p></div> -<div class="paragraph"><p>When a push mirror is created with <tt>--mirror=push</tt>, then <tt>git push</tt> -will always behave as if <tt>--mirror</tt> was passed.</p></div> +<div class="paragraph"><p>When a push mirror is created with <code>--mirror=push</code>, then <code>git push</code> +will always behave as if <code>--mirror</code> was passed.</p></div> </dd> <dt class="hdlist1"> <em>rename</em> @@ -836,7 +834,7 @@ configuration settings for the remote are updated. </p> <div class="paragraph"><p>In case <old> and <new> are the same, and <old> is a file under -<tt>$GIT_DIR/remotes</tt> or <tt>$GIT_DIR/branches</tt>, the remote is converted to +<code>$GIT_DIR/remotes</code> or <code>$GIT_DIR/branches</code>, the remote is converted to the configuration file format.</p></div> </dd> <dt class="hdlist1"> @@ -857,24 +855,24 @@ <dd> <p> Sets or deletes the default branch (i.e. the target of the -symbolic-ref <tt>refs/remotes/<name>/HEAD</tt>) for +symbolic-ref <code>refs/remotes/<name>/HEAD</code>) for the named remote. Having a default branch for a remote is not required, but allows the name of the remote to be specified in lieu of a specific -branch. For example, if the default branch for <tt>origin</tt> is set to -<tt>master</tt>, then <tt>origin</tt> may be specified wherever you would normally -specify <tt>origin/master</tt>. +branch. For example, if the default branch for <code>origin</code> is set to +<code>master</code>, then <code>origin</code> may be specified wherever you would normally +specify <code>origin/master</code>. </p> -<div class="paragraph"><p>With <tt>-d</tt> or <tt>--delete</tt>, the symbolic ref <tt>refs/remotes/<name>/HEAD</tt> is deleted.</p></div> -<div class="paragraph"><p>With <tt>-a</tt> or <tt>--auto</tt>, the remote is queried to determine its <tt>HEAD</tt>, then the -symbolic-ref <tt>refs/remotes/<name>/HEAD</tt> is set to the same branch. e.g., if the remote -<tt>HEAD</tt> is pointed at <tt>next</tt>, "<tt>git remote set-head origin -a</tt>" will set -the symbolic-ref <tt>refs/remotes/origin/HEAD</tt> to <tt>refs/remotes/origin/next</tt>. This will -only work if <tt>refs/remotes/origin/next</tt> already exists; if not it must be +<div class="paragraph"><p>With <code>-d</code> or <code>--delete</code>, the symbolic ref <code>refs/remotes/<name>/HEAD</code> is deleted.</p></div> +<div class="paragraph"><p>With <code>-a</code> or <code>--auto</code>, the remote is queried to determine its <code>HEAD</code>, then the +symbolic-ref <code>refs/remotes/<name>/HEAD</code> is set to the same branch. e.g., if the remote +<code>HEAD</code> is pointed at <code>next</code>, "<code>git remote set-head origin -a</code>" will set +the symbolic-ref <code>refs/remotes/origin/HEAD</code> to <code>refs/remotes/origin/next</code>. This will +only work if <code>refs/remotes/origin/next</code> already exists; if not it must be fetched first.</p></div> -<div class="paragraph"><p>Use <tt><branch></tt> to set the symbolic-ref <tt>refs/remotes/<name>/HEAD</tt> explicitly. e.g., "git -remote set-head origin master" will set the symbolic-ref <tt>refs/remotes/origin/HEAD</tt> to -<tt>refs/remotes/origin/master</tt>. This will only work if -<tt>refs/remotes/origin/master</tt> already exists; if not it must be fetched first.</p></div> +<div class="paragraph"><p>Use <code><branch></code> to set the symbolic-ref <code>refs/remotes/<name>/HEAD</code> explicitly. e.g., "git +remote set-head origin master" will set the symbolic-ref <code>refs/remotes/origin/HEAD</code> to +<code>refs/remotes/origin/master</code>. This will only work if +<code>refs/remotes/origin/master</code> already exists; if not it must be fetched first.</p></div> </dd> <dt class="hdlist1"> <em>set-branches</em> @@ -886,8 +884,8 @@ after the initial setup for a remote. </p> <div class="paragraph"><p>The named branches will be interpreted as if specified with the -<tt>-t</tt> option on the <em>git remote add</em> command line.</p></div> -<div class="paragraph"><p>With <tt>--add</tt>, instead of replacing the list of currently tracked +<code>-t</code> option on the <em>git remote add</em> command line.</p></div> +<div class="paragraph"><p>With <code>--add</code>, instead of replacing the list of currently tracked branches, adds to that list.</p></div> </dd> <dt class="hdlist1"> @@ -912,8 +910,8 @@ <p> Gives some information about the remote <name>. </p> -<div class="paragraph"><p>With <tt>-n</tt> option, the remote heads are not queried first with -<tt>git ls-remote <name></tt>; cached information is used instead.</p></div> +<div class="paragraph"><p>With <code>-n</code> option, the remote heads are not queried first with +<code>git ls-remote <name></code>; cached information is used instead.</p></div> </dd> <dt class="hdlist1"> <em>prune</em> @@ -925,7 +923,7 @@ referenced by <name>, but are still locally available in "remotes/<name>". </p> -<div class="paragraph"><p>With <tt>--dry-run</tt> option, report what branches will be pruned, but do not +<div class="paragraph"><p>With <code>--dry-run</code> option, report what branches will be pruned, but do not actually prune them.</p></div> </dd> <dt class="hdlist1"> @@ -940,7 +938,7 @@ configuration parameter remote.<name>.skipDefaultUpdate set to true will be updated. (See <a href="git-config.html">git-config(1)</a>). </p> -<div class="paragraph"><p>With <tt>--prune</tt> option, prune all the remotes that are updated.</p></div> +<div class="paragraph"><p>With <code>--prune</code> option, prune all the remotes that are updated.</p></div> </dd> </dl></div> </div> @@ -948,8 +946,8 @@ <div class="sect1"> <h2 id="_discussion">DISCUSSION</h2> <div class="sectionbody"> -<div class="paragraph"><p>The remote configuration is achieved using the <tt>remote.origin.url</tt> and -<tt>remote.origin.fetch</tt> configuration variables. (See +<div class="paragraph"><p>The remote configuration is achieved using the <code>remote.origin.url</code> and +<code>remote.origin.fetch</code> configuration variables. (See <a href="git-config.html">git-config(1)</a>).</p></div> </div> </div> @@ -963,7 +961,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git remote +<pre><code>$ git remote origin $ git branch -r origin/HEAD -> origin/master @@ -985,7 +983,7 @@ staging/staging-linus staging/staging-next $ git checkout -b staging staging/master -...</tt></pre> +...</code></pre> </div></div> </li> <li> @@ -994,11 +992,11 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ mkdir project.git +<pre><code>$ mkdir project.git $ cd project.git $ git init $ git remote add -f -t master -m master origin git://example.com/git.git/ -$ git merge origin</tt></pre> +$ git merge origin</code></pre> </div></div> </li> </ul></div>
diff --git a/git-repack.html b/git-repack.html index d814d54..23f5bfb 100644 --- a/git-repack.html +++ b/git-repack.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-repack(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -781,8 +779,8 @@ pack everything referenced into a single pack. Especially useful when packing a repository that is used for private development. Use - with <em>-d</em>. This will clean up the objects that <tt>git prune</tt> - leaves behind, but <tt>git fsck --full --dangling</tt> shows as + with <em>-d</em>. This will clean up the objects that <code>git prune</code> + leaves behind, but <code>git fsck --full --dangling</code> shows as dangling. </p> <div class="paragraph"><p>Note that users fetching over dumb protocols will have to fetch the @@ -794,7 +792,7 @@ </dt> <dd> <p> - Same as <tt>-a</tt>, unless <em>-d</em> is used. Then any unreachable + Same as <code>-a</code>, unless <em>-d</em> is used. Then any unreachable objects in a previous pack become loose, unpacked objects, instead of being left in the old pack. Unreachable objects are never intentionally added to a pack, even when repacking. @@ -821,7 +819,7 @@ </dt> <dd> <p> - Pass the <tt>--local</tt> option to <em>git pack-objects</em>. See + Pass the <code>--local</code> option to <em>git pack-objects</em>. See <a href="git-pack-objects.html">git-pack-objects(1)</a>. </p> </dd> @@ -830,7 +828,7 @@ </dt> <dd> <p> - Pass the <tt>--no-reuse-delta</tt> option to <tt>git-pack-objects</tt>, see + Pass the <code>--no-reuse-delta</code> option to <code>git-pack-objects</code>, see <a href="git-pack-objects.html">git-pack-objects(1)</a>. </p> </dd> @@ -839,7 +837,7 @@ </dt> <dd> <p> - Pass the <tt>--no-reuse-object</tt> option to <tt>git-pack-objects</tt>, see + Pass the <code>--no-reuse-object</code> option to <code>git-pack-objects</code>, see <a href="git-pack-objects.html">git-pack-objects(1)</a>. </p> </dd> @@ -848,7 +846,7 @@ </dt> <dd> <p> - Pass the <tt>-q</tt> option to <em>git pack-objects</em>. See + Pass the <code>-q</code> option to <em>git pack-objects</em>. See <a href="git-pack-objects.html">git-pack-objects(1)</a>. </p> </dd> @@ -875,8 +873,8 @@ These two options affect how the objects contained in the pack are stored using delta compression. The objects are first internally sorted by type, size and optionally names and compared against the - other objects within <tt>--window</tt> to see if using delta compression saves - space. <tt>--depth</tt> limits the maximum delta depth; making it too deep + other objects within <code>--window</code> to see if using delta compression saves + space. <code>--depth</code> limits the maximum delta depth; making it too deep affects the performance on the unpacker side, because delta data needs to be applied that many times to get to the necessary object. The default value for --window is 10 and --depth is 50. @@ -887,14 +885,14 @@ </dt> <dd> <p> - This option provides an additional limit on top of <tt>--window</tt>; + This option provides an additional limit on top of <code>--window</code>; the window size will dynamically scale down so as to not take up more than <em><n></em> bytes in memory. This is useful in repositories with a mix of large and small objects to not run out of memory with a large window, but still be able to take advantage of the large window for the smaller objects. The size can be suffixed with "k", "m", or "g". - <tt>--window-memory=0</tt> makes memory usage unlimited, which is the + <code>--window-memory=0</code> makes memory usage unlimited, which is the default. </p> </dd> @@ -907,7 +905,7 @@ "k", "m", or "g". The minimum size allowed is limited to 1 MiB. If specified, multiple packfiles may be created. The default is unlimited, unless the config variable - <tt>pack.packSizeLimit</tt> is set. + <code>pack.packSizeLimit</code> is set. </p> </dd> <dt class="hdlist1"> @@ -919,9 +917,9 @@ <dd> <p> Write a reachability bitmap index as part of the repack. This - only makes sense when used with <tt>-a</tt> or <tt>-A</tt>, as the bitmaps + only makes sense when used with <code>-a</code> or <code>-A</code>, as the bitmaps must be able to refer to all reachable objects. This option - overrides the setting of <tt>pack.writebitmaps</tt>. + overrides the setting of <code>pack.writebitmaps</code>. </p> </dd> <dt class="hdlist1"> @@ -929,12 +927,12 @@ </dt> <dd> <p> - Include objects in <tt>.keep</tt> files when repacking. Note that we - still do not delete <tt>.keep</tt> packs after <tt>pack-objects</tt> finishes. + Include objects in <code>.keep</code> files when repacking. Note that we + still do not delete <code>.keep</code> packs after <code>pack-objects</code> finishes. This means that we may duplicate objects, but this makes the option safe to use when there are concurrent pushes or fetches. This option is generally only useful if you are writing bitmaps - with <tt>-b</tt> or <tt>pack.writebitmaps</tt>, as it ensures that the + with <code>-b</code> or <code>pack.writebitmaps</code>, as it ensures that the bitmapped packfile has the necessary objects. </p> </dd> @@ -944,12 +942,12 @@ <div class="sect1"> <h2 id="_configuration">Configuration</h2> <div class="sectionbody"> -<div class="paragraph"><p>By default, the command passes <tt>--delta-base-offset</tt> option to +<div class="paragraph"><p>By default, the command passes <code>--delta-base-offset</code> option to <em>git pack-objects</em>; this typically results in slightly smaller packs, but the generated packs are incompatible with versions of Git older than version 1.4.4. If you need to share your repository with such ancient Git versions, either directly or via the dumb http or rsync protocol, then you -need to set the configuration variable <tt>repack.UseDeltaBaseOffset</tt> to +need to set the configuration variable <code>repack.UseDeltaBaseOffset</code> to "false" and repack. Access from old Git versions over the native protocol is unaffected by this option as the conversion is performed on the fly as needed in that case.</p></div>
diff --git a/git-replace.html b/git-replace.html index e1a6f0d..01c15c3 100644 --- a/git-replace.html +++ b/git-replace.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-replace(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -762,33 +760,33 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>Adds a <em>replace</em> reference in <tt>refs/replace/</tt> namespace.</p></div> +<div class="paragraph"><p>Adds a <em>replace</em> reference in <code>refs/replace/</code> namespace.</p></div> <div class="paragraph"><p>The name of the <em>replace</em> reference is the SHA-1 of the object that is replaced. The content of the <em>replace</em> reference is the SHA-1 of the replacement object.</p></div> <div class="paragraph"><p>The replaced object and the replacement object must be of the same type. -This restriction can be bypassed using <tt>-f</tt>.</p></div> -<div class="paragraph"><p>Unless <tt>-f</tt> is given, the <em>replace</em> reference must not yet exist.</p></div> +This restriction can be bypassed using <code>-f</code>.</p></div> +<div class="paragraph"><p>Unless <code>-f</code> is given, the <em>replace</em> reference must not yet exist.</p></div> <div class="paragraph"><p>There is no other restriction on the replaced and replacement objects. Merge commits can be replaced by non-merge commits and vice versa.</p></div> <div class="paragraph"><p>Replacement references will be used by default by all Git commands except those doing reachability traversal (prune, pack transfer and fsck).</p></div> <div class="paragraph"><p>It is possible to disable use of replacement references for any -command using the <tt>--no-replace-objects</tt> option just after <em>git</em>.</p></div> +command using the <code>--no-replace-objects</code> option just after <em>git</em>.</p></div> <div class="paragraph"><p>For example if commit <em>foo</em> has been replaced by commit <em>bar</em>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git --no-replace-objects cat-file commit foo</tt></pre> +<pre><code>$ git --no-replace-objects cat-file commit foo</code></pre> </div></div> <div class="paragraph"><p>shows information about commit <em>foo</em>, while:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git cat-file commit foo</tt></pre> +<pre><code>$ git cat-file commit foo</code></pre> </div></div> <div class="paragraph"><p>shows information about commit <em>bar</em>.</p></div> <div class="paragraph"><p>The <em>GIT_NO_REPLACE_OBJECTS</em> environment variable can be set to -achieve the same effect as the <tt>--no-replace-objects</tt> option.</p></div> +achieve the same effect as the <code>--no-replace-objects</code> option.</p></div> </div> </div> <div class="sect1"> @@ -917,7 +915,7 @@ <div class="sectionbody"> <div class="paragraph"><p><a href="git-filter-branch.html">git-filter-branch(1)</a>, <a href="git-hash-object.html">git-hash-object(1)</a> and <a href="git-rebase.html">git-rebase(1)</a>, among other git commands, can be used to create -replacement objects from existing objects. The <tt>--edit</tt> option can +replacement objects from existing objects. The <code>--edit</code> option can also be used with <em>git replace</em> to create a replacement object by editing an existing object.</p></div> <div class="paragraph"><p>If you want to replace many blobs, trees or commits that are part of a @@ -931,7 +929,7 @@ <h2 id="_bugs">BUGS</h2> <div class="sectionbody"> <div class="paragraph"><p>Comparing blobs or trees that have been replaced with those that -replace them will not work properly. And using <tt>git reset --hard</tt> to +replace them will not work properly. And using <code>git reset --hard</code> to go back to a replaced commit will move the branch to the replacement commit instead of the replaced commit.</p></div> <div class="paragraph"><p>There may be other problems when using <em>git rev-list</em> related to
diff --git a/git-request-pull.html b/git-request-pull.html index 536cf86..d20eb99 100644 --- a/git-request-pull.html +++ b/git-request-pull.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-request-pull(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -762,9 +760,9 @@ their tree. The request, printed to the standard output, summarizes the changes and indicates from where they can be pulled.</p></div> <div class="paragraph"><p>The upstream project is expected to have the commit named by -<tt><start></tt> and the output asks it to integrate the changes you made -since that commit, up to the commit named by <tt><end></tt>, by visiting -the repository named by <tt><url></tt>.</p></div> +<code><start></code> and the output asks it to integrate the changes you made +since that commit, up to the commit named by <code><end></code>, by visiting +the repository named by <code><url></code>.</p></div> </div> </div> <div class="sect1"> @@ -804,9 +802,9 @@ Commit to end at (defaults to HEAD). This names the commit at the tip of the history you are asking to be pulled. </p> -<div class="paragraph"><p>When the repository named by <tt><url></tt> has the commit at a tip of a +<div class="paragraph"><p>When the repository named by <code><url></code> has the commit at a tip of a ref that is different from the ref you have locally, you can use the -<tt><local>:<remote></tt> syntax, to have its local name, a colon <tt>:</tt>, and +<code><local>:<remote></code> syntax, to have its local name, a colon <code>:</code>, and its remote name.</p></div> </dd> </dl></div> @@ -815,32 +813,32 @@ <div class="sect1"> <h2 id="_example">EXAMPLE</h2> <div class="sectionbody"> -<div class="paragraph"><p>Imagine that you built your work on your <tt>master</tt> branch on top of -the <tt>v1.0</tt> release, and want it to be integrated to the project. +<div class="paragraph"><p>Imagine that you built your work on your <code>master</code> branch on top of +the <code>v1.0</code> release, and want it to be integrated to the project. First you push that change to your public repository for others to see:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git push https://git.ko.xz/project master</tt></pre> +<pre><code>git push https://git.ko.xz/project master</code></pre> </div></div> <div class="paragraph"><p>Then, you run this command:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git request-pull v1.0 https://git.ko.xz/project master</tt></pre> +<pre><code>git request-pull v1.0 https://git.ko.xz/project master</code></pre> </div></div> <div class="paragraph"><p>which will produce a request to the upstream, summarizing the -changes between the <tt>v1.0</tt> release and your <tt>master</tt>, to pull it +changes between the <code>v1.0</code> release and your <code>master</code>, to pull it from your public repository.</p></div> <div class="paragraph"><p>If you pushed your change to a branch whose name is different from the one you have locally, e.g.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git push https://git.ko.xz/project master:for-linus</tt></pre> +<pre><code>git push https://git.ko.xz/project master:for-linus</code></pre> </div></div> <div class="paragraph"><p>then you can ask that to be pulled with</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git request-pull v1.0 https://git.ko.xz/project master:for-linus</tt></pre> +<pre><code>git request-pull v1.0 https://git.ko.xz/project master:for-linus</code></pre> </div></div> </div> </div>
diff --git a/git-rerere.html b/git-rerere.html index edcb37c..18bb84c 100644 --- a/git-rerere.html +++ b/git-rerere.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-rerere(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -841,7 +839,7 @@ occurred a long time ago. By default, unresolved conflicts older than 15 days and resolved conflicts older than 60 days are pruned. These defaults are controlled via the -<tt>gc.rerereunresolved</tt> and <tt>gc.rerereresolved</tt> configuration +<code>gc.rerereunresolved</code> and <code>gc.rerereresolved</code> configuration variables respectively. </p> </dd> @@ -857,35 +855,35 @@ even before your topic branch is ready to be pushed upstream:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> o---*---o topic +<pre><code> o---*---o topic / - o---o---o---*---o---o master</tt></pre> + o---o---o---*---o---o master</code></pre> </div></div> <div class="paragraph"><p>For such a test, you need to merge master and topic somehow. One way to do it is to pull master into the topic branch:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git checkout topic +<pre><code> $ git checkout topic $ git merge master o---*---o---+ topic / / - o---o---o---*---o---o master</tt></pre> + o---o---o---*---o---o master</code></pre> </div></div> -<div class="paragraph"><p>The commits marked with <tt>*</tt> touch the same area in the same +<div class="paragraph"><p>The commits marked with <code>*</code> touch the same area in the same file; you need to resolve the conflicts when creating the commit -marked with <tt>+</tt>. Then you can test the result to make sure your +marked with <code>+</code>. Then you can test the result to make sure your work-in-progress still works with what is in the latest master.</p></div> <div class="paragraph"><p>After this test merge, there are two ways to continue your work on the topic. The easiest is to build on top of the test merge -commit <tt>+</tt>, and when your work in the topic branch is finally +commit <code>+</code>, and when your work in the topic branch is finally ready, pull the topic branch into master, and/or ask the upstream to pull from you. By that time, however, the master or -the upstream might have been advanced since the test merge <tt>+</tt>, +the upstream might have been advanced since the test merge <code>+</code>, in which case the final commit graph would look like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git checkout topic +<pre><code> $ git checkout topic $ git merge master $ ... work on both topic and master branches $ git checkout master @@ -893,7 +891,7 @@ o---*---o---+---o---o topic / / \ - o---o---o---*---o---o---o---o---+ master</tt></pre> + o---o---o---*---o---o---o---o---+ master</code></pre> </div></div> <div class="paragraph"><p>When your topic branch is long-lived, however, your topic branch would end up having many such "Merge from master" commits on it, @@ -906,7 +904,7 @@ top of the tip before the test merge:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git checkout topic +<pre><code> $ git checkout topic $ git merge master $ git reset --hard HEAD^ ;# rewind the test merge $ ... work on both topic and master branches @@ -915,19 +913,19 @@ o---*---o-------o---o topic / \ - o---o---o---*---o---o---o---o---+ master</tt></pre> + o---o---o---*---o---o---o---o---+ master</code></pre> </div></div> <div class="paragraph"><p>This would leave only one merge commit when your topic branch is finally ready and merged into the master branch. This merge would require you to resolve the conflict, introduced by the -commits marked with <tt>*</tt>. However, this conflict is often the +commits marked with <code>*</code>. However, this conflict is often the same conflict you resolved when you created the test merge you blew away. <em>git rerere</em> helps you resolve this final conflicted merge using the information from your earlier hand resolve.</p></div> <div class="paragraph"><p>Running the <em>git rerere</em> command immediately after a conflicted automerge records the conflicted working tree files, with the -usual conflict markers <tt><<<<<<<</tt>, <tt>=======</tt>, and <tt>>>>>>>></tt> in +usual conflict markers <code><<<<<<<</code>, <code>=======</code>, and <code>>>>>>>></code> in them. Later, after you are done resolving the conflicts, running <em>git rerere</em> again will record the resolved state of these files. Suppose you did this when you created the test merge of @@ -939,8 +937,8 @@ If this three-way merge resolves cleanly, the result is written out to your working tree file, so you do not have to manually resolve it. Note that <em>git rerere</em> leaves the index file alone, -so you still need to do the final sanity checks with <tt>git diff</tt> -(or <tt>git diff -c</tt>) and <em>git add</em> when you are satisfied.</p></div> +so you still need to do the final sanity checks with <code>git diff</code> +(or <code>git diff -c</code>) and <em>git add</em> when you are satisfied.</p></div> <div class="paragraph"><p>As a convenience measure, <em>git merge</em> automatically invokes <em>git rerere</em> upon exiting with a failed automerge and <em>git rerere</em> records the hand resolve when it is a new conflict, or reuses the earlier hand @@ -957,7 +955,7 @@ development on the topic branch:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> o---*---o-------o---o topic +<pre><code> o---*---o-------o---o topic / o---o---o---*---o---o---o---o master @@ -965,9 +963,9 @@ o---*---o-------o---o topic / - o---o---o---*---o---o---o---o master</tt></pre> + o---o---o---*---o---o---o---o master</code></pre> </div></div> -<div class="paragraph"><p>you could run <tt>git rebase master topic</tt>, to bring yourself +<div class="paragraph"><p>you could run <code>git rebase master topic</code>, to bring yourself up-to-date before your topic is ready to be sent upstream. This would result in falling back to a three-way merge, and it would conflict the same way as the test merge you resolved earlier.
diff --git a/git-reset.html b/git-reset.html index 96f4bb0..bd9a28d 100644 --- a/git-reset.html +++ b/git-reset.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-reset(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -774,9 +772,9 @@ state at <tree-ish>. (It does not affect the working tree or the current branch.) </p> -<div class="paragraph"><p>This means that <tt>git reset <paths></tt> is the opposite of <tt>git add -<paths></tt>.</p></div> -<div class="paragraph"><p>After running <tt>git reset <paths></tt> to update the index entry, you can +<div class="paragraph"><p>This means that <code>git reset <paths></code> is the opposite of <code>git add +<paths></code>.</p></div> +<div class="paragraph"><p>After running <code>git reset <paths></code> to update the index entry, you can use <a href="git-checkout.html">git-checkout(1)</a> to check the contents out of the index to the working tree. Alternatively, using <a href="git-checkout.html">git-checkout(1)</a> and specifying a commit, you @@ -792,9 +790,9 @@ and <tree-ish> (defaults to HEAD). The chosen hunks are applied in reverse to the index. </p> -<div class="paragraph"><p>This means that <tt>git reset -p</tt> is the opposite of <tt>git add -p</tt>, i.e. +<div class="paragraph"><p>This means that <code>git reset -p</code> is the opposite of <code>git add -p</code>, i.e. you can use it to selectively reset hunks. See the “Interactive Mode” -section of <a href="git-add.html">git-add(1)</a> to learn how to operate the <tt>--patch</tt> mode.</p></div> +section of <a href="git-add.html">git-add(1)</a> to learn how to operate the <code>--patch</code> mode.</p></div> </dd> <dt class="hdlist1"> <em>git reset</em> [<mode>] [<commit>] @@ -829,7 +827,7 @@ are preserved but not marked for commit) and reports what has not been updated. This is the default action. </p> -<div class="paragraph"><p>If <tt>-N</tt> is specified, removed paths are marked as intent-to-add (see +<div class="paragraph"><p>If <code>-N</code> is specified, removed paths are marked as intent-to-add (see <a href="git-add.html">git-add(1)</a>).</p></div> </dd> <dt class="hdlist1"> @@ -903,11 +901,11 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ edit <b><1></b> +<pre><code>$ edit <b><1></b> $ git add frotz.c filfre.c $ mailx <b><2></b> $ git reset <b><3></b> -$ git pull git://info.example.com/ nitfol <b><4></b></tt></pre> +$ git pull git://info.example.com/ nitfol <b><4></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -946,10 +944,10 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git commit ... +<pre><code>$ git commit ... $ git reset --soft HEAD^ <b><1></b> $ edit <b><2></b> -$ git commit -a -c ORIG_HEAD <b><3></b></tt></pre> +$ git commit -a -c ORIG_HEAD <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -980,9 +978,9 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git branch topic/wip <b><1></b> +<pre><code>$ git branch topic/wip <b><1></b> $ git reset --hard HEAD~3 <b><2></b> -$ git checkout topic/wip <b><3></b></tt></pre> +$ git checkout topic/wip <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1011,8 +1009,8 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git commit ... -$ git reset --hard HEAD~3 <b><1></b></tt></pre> +<pre><code>$ git commit ... +$ git reset --hard HEAD~3 <b><1></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1032,7 +1030,7 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git pull <b><1></b> +<pre><code>$ git pull <b><1></b> Auto-merging nitfol CONFLICT (content): Merge conflict in nitfol Automatic merge failed; fix conflicts and then commit the result. @@ -1040,7 +1038,7 @@ $ git pull . topic/branch <b><3></b> Updating from 41223... to 13134... Fast-forward -$ git reset --hard ORIG_HEAD <b><4></b></tt></pre> +$ git reset --hard ORIG_HEAD <b><4></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1080,12 +1078,12 @@ <dd> <div class="listingblock"> <div class="content"> -<pre><tt>$ git pull <b><1></b> +<pre><code>$ git pull <b><1></b> Auto-merging nitfol Merge made by recursive. nitfol | 20 +++++---- ... -$ git reset --merge ORIG_HEAD <b><2></b></tt></pre> +$ git reset --merge ORIG_HEAD <b><2></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1117,7 +1115,7 @@ need to get to the other branch for a quick bugfix.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout feature ;# you were working in "feature" branch and +<pre><code>$ git checkout feature ;# you were working in "feature" branch and $ work work work ;# got interrupted $ git commit -a -m "snapshot WIP" <b><1></b> $ git checkout master @@ -1125,7 +1123,7 @@ $ git commit ;# commit with real log $ git checkout feature $ git reset --soft HEAD^ ;# go back to WIP state <b><2></b> -$ git reset <b><3></b></tt></pre> +$ git reset <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1158,9 +1156,9 @@ while keeping your changes with git reset.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git reset -- frotz.c <b><1></b> +<pre><code>$ git reset -- frotz.c <b><1></b> $ git commit -m "Commit files in index" <b><2></b> -$ git add frotz.c <b><3></b></tt></pre> +$ git add frotz.c <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1192,13 +1190,13 @@ reset it while keeping the changes in your working tree.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git tag start +<pre><code>$ git tag start $ git checkout -b branch1 $ edit $ git commit ... <b><1></b> $ edit $ git checkout -b branch2 <b><2></b> -$ git reset --keep start <b><3></b></tt></pre> +$ git reset --keep start <b><3></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -1231,9 +1229,9 @@ <div class="paragraph"><p>The tables below show what happens when running:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git reset --option target</tt></pre> +<pre><code>git reset --option target</code></pre> </div></div> -<div class="paragraph"><p>to reset the HEAD to another commit (<tt>target</tt>) with the different +<div class="paragraph"><p>to reset the HEAD to another commit (<code>target</code>) with the different reset options depending on the state of the files.</p></div> <div class="paragraph"><p>In these tables, A, B, C and D are some different states of a file. For example, the first line of the first table means that if a @@ -1245,63 +1243,63 @@ in state D).</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>working index HEAD target working index HEAD +<pre><code>working index HEAD target working index HEAD ---------------------------------------------------- A B C D --soft A B D --mixed A D D --hard D D D --merge (disallowed) - --keep (disallowed)</tt></pre> + --keep (disallowed)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>working index HEAD target working index HEAD +<pre><code>working index HEAD target working index HEAD ---------------------------------------------------- A B C C --soft A B C --mixed A C C --hard C C C --merge (disallowed) - --keep A C C</tt></pre> + --keep A C C</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>working index HEAD target working index HEAD +<pre><code>working index HEAD target working index HEAD ---------------------------------------------------- B B C D --soft B B D --mixed B D D --hard D D D --merge D D D - --keep (disallowed)</tt></pre> + --keep (disallowed)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>working index HEAD target working index HEAD +<pre><code>working index HEAD target working index HEAD ---------------------------------------------------- B B C C --soft B B C --mixed B C C --hard C C C --merge C C C - --keep B C C</tt></pre> + --keep B C C</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>working index HEAD target working index HEAD +<pre><code>working index HEAD target working index HEAD ---------------------------------------------------- B C C D --soft B C D --mixed B D D --hard D D D --merge (disallowed) - --keep (disallowed)</tt></pre> + --keep (disallowed)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>working index HEAD target working index HEAD +<pre><code>working index HEAD target working index HEAD ---------------------------------------------------- B C C C --soft B C C --mixed B C C --hard C C C --merge B C C - --keep B C C</tt></pre> + --keep B C C</code></pre> </div></div> <div class="paragraph"><p>"reset --merge" is meant to be used when resetting out of a conflicted merge. Any mergy operation guarantees that the working tree file that is @@ -1323,23 +1321,23 @@ entries:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>working index HEAD target working index HEAD +<pre><code>working index HEAD target working index HEAD ---------------------------------------------------- X U A B --soft (disallowed) --mixed X B B --hard B B B --merge B B B - --keep (disallowed)</tt></pre> + --keep (disallowed)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>working index HEAD target working index HEAD +<pre><code>working index HEAD target working index HEAD ---------------------------------------------------- X U A A --soft (disallowed) --mixed X A A --hard A A A --merge A A A - --keep (disallowed)</tt></pre> + --keep (disallowed)</code></pre> </div></div> <div class="paragraph"><p>X means any state and U means an unmerged index.</p></div> </div>
diff --git a/git-revert.html b/git-revert.html index 97dc2e8..6da72c0 100644 --- a/git-revert.html +++ b/git-revert.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-revert(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -770,8 +768,8 @@ throw away all uncommitted changes in your working directory, you should see <a href="git-reset.html">git-reset(1)</a>, particularly the <em>--hard</em> option. If you want to extract specific files as they were in another commit, you -should see <a href="git-checkout.html">git-checkout(1)</a>, specifically the <tt>git checkout -<commit> -- <filename></tt> syntax. Take care with these alternatives as +should see <a href="git-checkout.html">git-checkout(1)</a>, specifically the <code>git checkout +<commit> -- <filename></code> syntax. Take care with these alternatives as both will discard uncommitted changes in your working directory.</p></div> </div> </div> @@ -942,7 +940,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>git revert HEAD~3</tt> +<code>git revert HEAD~3</code> </dt> <dd> <p> @@ -951,7 +949,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git revert -n master~5..master~2</tt> +<code>git revert -n master~5..master~2</code> </dt> <dd> <p>
diff --git a/git-rm.html b/git-rm.html index dbcebef..43894a8 100644 --- a/git-rm.html +++ b/git-rm.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-rm(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -759,13 +757,13 @@ <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"><p>Remove files from the index, or from the working tree and the index. -<tt>git rm</tt> will not remove a file from just your working directory. +<code>git rm</code> will not remove a file from just your working directory. (There is no option to remove a file only from the working tree -and yet keep it in the index; use <tt>/bin/rm</tt> if you want to do that.) +and yet keep it in the index; use <code>/bin/rm</code> if you want to do that.) The files being removed have to be identical to the tip of the branch, and no updates to their contents can be staged in the index, -though that default behavior can be overridden with the <tt>-f</tt> option. -When <tt>--cached</tt> is given, the staged content has to +though that default behavior can be overridden with the <code>-f</code> option. +When <code>--cached</code> is given, the staged content has to match either the tip of the branch or the file on disk, allowing the file to be removed from just the index.</p></div> </div> @@ -779,14 +777,14 @@ </dt> <dd> <p> - Files to remove. Fileglobs (e.g. <tt>*.c</tt>) can be given to + Files to remove. Fileglobs (e.g. <code>*.c</code>) can be given to remove all matching files. If you want Git to expand file glob characters, you may need to shell-escape them. A leading directory name - (e.g. <tt>dir</tt> to remove <tt>dir/file1</tt> and <tt>dir/file2</tt>) can be + (e.g. <code>dir</code> to remove <code>dir/file1</code> and <code>dir/file2</code>) can be given to remove all files in the directory, and recursively all sub-directories, - but this requires the <tt>-r</tt> option to be explicitly given. + but this requires the <code>-r</code> option to be explicitly given. </p> </dd> <dt class="hdlist1"> @@ -858,7 +856,7 @@ </dt> <dd> <p> - <tt>git rm</tt> normally outputs one line (in the form of an <tt>rm</tt> command) + <code>git rm</code> normally outputs one line (in the form of an <code>rm</code> command) for each file removed. This option suppresses that output. </p> </dd> @@ -873,15 +871,15 @@ removes only the paths that are known to Git. Giving the name of a file that you have not told Git about does not remove that file.</p></div> <div class="paragraph"><p>File globbing matches across directory boundaries. Thus, given -two directories <tt>d</tt> and <tt>d2</tt>, there is a difference between -using <tt>git rm 'd*'</tt> and <tt>git rm 'd/*'</tt>, as the former will -also remove all of directory <tt>d2</tt>.</p></div> +two directories <code>d</code> and <code>d2</code>, there is a difference between +using <code>git rm 'd*'</code> and <code>git rm 'd/*'</code>, as the former will +also remove all of directory <code>d2</code>.</p></div> </div> </div> <div class="sect1"> <h2 id="_removing_files_that_have_disappeared_from_the_filesystem">REMOVING FILES THAT HAVE DISAPPEARED FROM THE FILESYSTEM</h2> <div class="sectionbody"> -<div class="paragraph"><p>There is no option for <tt>git rm</tt> to remove from the index only +<div class="paragraph"><p>There is no option for <code>git rm</code> to remove from the index only the paths that have disappeared from the filesystem. However, depending on the use case, there are several ways that can be done.</p></div> @@ -889,10 +887,10 @@ <h3 id="_using_8220_git_commit_a_8221">Using “git commit -a”</h3> <div class="paragraph"><p>If you intend that your next commit should record all modifications of tracked files in the working tree and record all removals of -files that have been removed from the working tree with <tt>rm</tt> -(as opposed to <tt>git rm</tt>), use <tt>git commit -a</tt>, as it will +files that have been removed from the working tree with <code>rm</code> +(as opposed to <code>git rm</code>), use <code>git commit -a</code>, as it will automatically notice and record all removals. You can also have a -similar effect without committing by using <tt>git add -u</tt>.</p></div> +similar effect without committing by using <code>git add -u</code>.</p></div> </div> <div class="sect2"> <h3 id="_using_8220_git_add_a_8221">Using “git add -A”</h3> @@ -903,7 +901,7 @@ tree using this command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git ls-files -z | xargs -0 rm -f</tt></pre> +<pre><code>git ls-files -z | xargs -0 rm -f</code></pre> </div></div> <div class="paragraph"><p>and then untar the new code in the working tree. Alternately you could <em>rsync</em> the changes into the working tree.</p></div> @@ -911,7 +909,7 @@ modifications in the working tree is:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git add -A</tt></pre> +<pre><code>git add -A</code></pre> </div></div> <div class="paragraph"><p>See <a href="git-add.html">git-add(1)</a>.</p></div> </div> @@ -919,11 +917,11 @@ <h3 id="_other_ways">Other ways</h3> <div class="paragraph"><p>If all you really want to do is to remove from the index the files that are no longer present in the working tree (perhaps because -your working tree is dirty so that you cannot use <tt>git commit -a</tt>), +your working tree is dirty so that you cannot use <code>git commit -a</code>), use the following command:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached</tt></pre> +<pre><code>git diff --name-only --diff-filter=D -z | xargs -0 git rm --cached</code></pre> </div></div> </div> </div> @@ -935,7 +933,7 @@ with a Git version 1.7.8 or newer) will be removed from the work tree, as their repository lives inside the .git directory of the superproject. If a submodule (or one of those nested inside it) -still uses a .git directory, <tt>git rm</tt> will fail - no matter if forced +still uses a .git directory, <code>git rm</code> will fail - no matter if forced or not - to protect the submodule’s history. If it exists the submodule.<name> section in the <a href="gitmodules.html">gitmodules(5)</a> file will also be removed and that file will be staged (unless --cached or -n are used).</p></div> @@ -946,7 +944,7 @@ tree from being removed.</p></div> <div class="paragraph"><p>If you only want to remove the local checkout of a submodule from your work tree without committing the removal, -use <a href="git-submodule.html">git-submodule(1)</a> <tt>deinit</tt> instead.</p></div> +use <a href="git-submodule.html">git-submodule(1)</a> <code>deinit</code> instead.</p></div> </div> </div> <div class="sect1"> @@ -954,25 +952,25 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>git rm Documentation/\*.txt</tt> +<code>git rm Documentation/\*.txt</code> </dt> <dd> <p> - Removes all <tt>*.txt</tt> files from the index that are under the - <tt>Documentation</tt> directory and any of its subdirectories. + Removes all <code>*.txt</code> files from the index that are under the + <code>Documentation</code> directory and any of its subdirectories. </p> -<div class="paragraph"><p>Note that the asterisk <tt>*</tt> is quoted from the shell in this +<div class="paragraph"><p>Note that the asterisk <code>*</code> is quoted from the shell in this example; this lets Git, and not the shell, expand the pathnames -of files and subdirectories under the <tt>Documentation/</tt> directory.</p></div> +of files and subdirectories under the <code>Documentation/</code> directory.</p></div> </dd> <dt class="hdlist1"> -<tt>git rm -f git-*.sh</tt> +<code>git rm -f git-*.sh</code> </dt> <dd> <p> Because this example lets the shell expand the asterisk (i.e. you are listing the files explicitly), it - does not remove <tt>subdir/git-foo.sh</tt>. + does not remove <code>subdir/git-foo.sh</code>. </p> </dd> </dl></div>
diff --git a/git-send-email.html b/git-send-email.html index 3344c44..074432e 100644 --- a/git-send-email.html +++ b/git-send-email.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-send-email(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -856,24 +854,24 @@ </dt> <dd> <p> - Make the first mail (or all the mails with <tt>--no-thread</tt>) appear as a + Make the first mail (or all the mails with <code>--no-thread</code>) appear as a reply to the given Message-Id, which avoids breaking threads to provide a new patch series. The second and subsequent emails will be sent as replies according to - the <tt>--[no]-chain-reply-to</tt> setting. + the <code>--[no]-chain-reply-to</code> setting. </p> -<div class="paragraph"><p>So for example when <tt>--thread</tt> and <tt>--no-chain-reply-to</tt> are specified, the +<div class="paragraph"><p>So for example when <code>--thread</code> and <code>--no-chain-reply-to</code> are specified, the second and subsequent patches will be replies to the first one like in the -illustration below where <tt>[PATCH v2 0/3]</tt> is in reply to <tt>[PATCH 0/2]</tt>:</p></div> +illustration below where <code>[PATCH v2 0/3]</code> is in reply to <code>[PATCH 0/2]</code>:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>[PATCH 0/2] Here is what I did... +<pre><code>[PATCH 0/2] Here is what I did... [PATCH 1/2] Clean up and tests [PATCH 2/2] Implementation [PATCH v2 0/3] Here is a reroll [PATCH v2 1/3] Clean up [PATCH v2 2/3] New tests - [PATCH v2 3/3] Implementation</tt></pre> + [PATCH v2 3/3] Implementation</code></pre> </div></div> <div class="paragraph"><p>Only necessary if --compose is also set. If --compose is not set, this will be prompted for.</p></div> @@ -985,13 +983,13 @@ <dd> <p> If set, specifies the outgoing SMTP server to use (e.g. - <tt>smtp.example.com</tt> or a raw IP address). Alternatively it can + <code>smtp.example.com</code> or a raw IP address). Alternatively it can specify a full pathname of a sendmail-like program instead; - the program must support the <tt>-i</tt> option. Default value can + the program must support the <code>-i</code> option. Default value can be specified by the <em>sendemail.smtpserver</em> configuration - option; the built-in default is <tt>/usr/sbin/sendmail</tt> or - <tt>/usr/lib/sendmail</tt> if such program is available, or - <tt>localhost</tt> otherwise. + option; the built-in default is <code>/usr/sbin/sendmail</code> or + <code>/usr/lib/sendmail</code> if such program is available, or + <code>localhost</code> otherwise. </p> </dd> <dt class="hdlist1"> @@ -1036,7 +1034,7 @@ Path to ca-certificates (either a directory or a single file). Set it to an empty string to disable certificate verification. Defaults to the value set to the <em>sendemail.smtpsslcertpath</em> - configuration variable, if set, or <tt>/etc/ssl/certs</tt> otherwise. + configuration variable, if set, or <code>/etc/ssl/certs</code> otherwise. </p> </dd> <dt class="hdlist1"> @@ -1219,8 +1217,8 @@ <p> If this is set, the In-Reply-To and References headers will be added to each email sent. Whether each mail refers to the - previous email (<tt>deep</tt> threading per <em>git format-patch</em> - wording) or to the first email (<tt>shallow</tt> threading) is + previous email (<code>deep</code> threading per <em>git format-patch</em> + wording) or to the first email (<code>shallow</code> threading) is governed by "--[no-]chain-reply-to". </p> <div class="paragraph"><p>If disabled with "--no-thread", those headers will not be added @@ -1397,19 +1395,19 @@ edit ~/.gitconfig to specify your account settings:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>[sendemail] +<pre><code>[sendemail] smtpencryption = tls smtpserver = smtp.gmail.com smtpuser = yourname@gmail.com - smtpserverport = 587</tt></pre> + smtpserverport = 587</code></pre> </div></div> <div class="paragraph"><p>Once your commits are ready to be sent to the mailing list, run the following commands:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git format-patch --cover-letter -M origin/master -o outgoing/ +<pre><code>$ git format-patch --cover-letter -M origin/master -o outgoing/ $ edit outgoing/0000-* -$ git send-email outgoing/*</tt></pre> +$ git send-email outgoing/*</code></pre> </div></div> <div class="paragraph"><p>Note: the following perl modules are required Net::SMTP::SSL, MIME::Base64 and Authen::SASL</p></div>
diff --git a/git-sh-i18n--envsubst.html b/git-sh-i18n--envsubst.html index fce8883..e3a865a 100644 --- a/git-sh-i18n--envsubst.html +++ b/git-sh-i18n--envsubst.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-sh-i18n--envsubst(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -767,9 +765,9 @@ This documentation is meant for people who are studying the plumbing scripts and/or are writing new ones.</p></div> <div class="paragraph"><p><em>git sh-i18n--envsubst</em> is Git’s stripped-down copy of the GNU -<tt>envsubst(1)</tt> program that comes with the GNU gettext package. It’s +<code>envsubst(1)</code> program that comes with the GNU gettext package. It’s used internally by <a href="git-sh-i18n.html">git-sh-i18n(1)</a> to interpolate the variables -passed to the <tt>eval_gettext</tt> function.</p></div> +passed to the <code>eval_gettext</code> function.</p></div> <div class="paragraph"><p>No promises are made about the interface, or that this program won’t disappear without warning in the next version of Git. Don’t use it.</p></div>
diff --git a/git-sh-i18n.html b/git-sh-i18n.html index 46fdbdf..b969778 100644 --- a/git-sh-i18n.html +++ b/git-sh-i18n.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-sh-i18n(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -762,9 +760,9 @@ This documentation is meant for people who are studying the Porcelain-ish scripts and/or are writing new ones.</p></div> <div class="paragraph"><p>The 'git sh-i18n scriptlet is designed to be sourced (using -<tt>.</tt>) by Git’s porcelain programs implemented in shell -script. It provides wrappers for the GNU <tt>gettext</tt> and -<tt>eval_gettext</tt> functions accessible through the <tt>gettext.sh</tt> +<code>.</code>) by Git’s porcelain programs implemented in shell +script. It provides wrappers for the GNU <code>gettext</code> and +<code>eval_gettext</code> functions accessible through the <code>gettext.sh</code> script, and provides pass-through fallbacks on systems without GNU gettext.</p></div> </div> @@ -779,7 +777,7 @@ <dd> <p> Currently a dummy fall-through function implemented as a wrapper - around <tt>printf(1)</tt>. Will be replaced by a real gettext + around <code>printf(1)</code>. Will be replaced by a real gettext implementation in a later version. </p> </dd> @@ -789,7 +787,7 @@ <dd> <p> Currently a dummy fall-through function implemented as a wrapper - around <tt>printf(1)</tt> with variables expanded by the + around <code>printf(1)</code> with variables expanded by the <a href="git-sh-i18n--envsubst.html">git-sh-i18n--envsubst(1)</a> helper. Will be replaced by a real gettext implementation in a later version. </p>
diff --git a/git-sh-setup.html b/git-sh-setup.html index 271b479..f12a64d 100644 --- a/git-sh-setup.html +++ b/git-sh-setup.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-sh-setup(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -762,14 +760,14 @@ This documentation is meant for people who are studying the Porcelain-ish scripts and/or are writing new ones.</p></div> <div class="paragraph"><p>The <em>git sh-setup</em> scriptlet is designed to be sourced (using -<tt>.</tt>) by other shell scripts to set up some variables pointing at +<code>.</code>) by other shell scripts to set up some variables pointing at the normal Git directories and a few helper shell functions.</p></div> <div class="paragraph"><p>Before sourcing it, your script should set up a few variables; -<tt>USAGE</tt> (and <tt>LONG_USAGE</tt>, if any) is used to define message -given by <tt>usage()</tt> shell function. <tt>SUBDIRECTORY_OK</tt> can be set +<code>USAGE</code> (and <code>LONG_USAGE</code>, if any) is used to define message +given by <code>usage()</code> shell function. <code>SUBDIRECTORY_OK</code> can be set if the script can run from a subdirectory of the working tree (some commands do not).</p></div> -<div class="paragraph"><p>The scriptlet sets <tt>GIT_DIR</tt> and <tt>GIT_OBJECT_DIRECTORY</tt> shell +<div class="paragraph"><p>The scriptlet sets <code>GIT_DIR</code> and <code>GIT_OBJECT_DIRECTORY</code> shell variables, but does <strong>not</strong> export them to the environment.</p></div> </div> </div> @@ -801,7 +799,7 @@ <p> Set GIT_REFLOG_ACTION environment to a given string (typically the name of the program) unless it is already set. Whenever - the script runs a <tt>git</tt> command that updates refs, a reflog + the script runs a <code>git</code> command that updates refs, a reflog entry is created using the value of this string to leave the record of what command updated the ref. </p> @@ -821,7 +819,7 @@ </dt> <dd> <p> - outputs <tt>true</tt> or <tt>false</tt> to the standard output stream + outputs <code>true</code> or <code>false</code> to the standard output stream to indicate if the repository is a bare repository (i.e. without an associated working tree). </p> @@ -861,12 +859,12 @@ <p> checks that the working tree and index associated with the repository have no uncommitted changes to tracked files. - Otherwise it emits an error message of the form <tt>Cannot - <action>: <reason>. <hint></tt>, and dies. Example: + Otherwise it emits an error message of the form <code>Cannot + <action>: <reason>. <hint></code>, and dies. Example: </p> <div class="listingblock"> <div class="content"> -<pre><tt>require_clean_work_tree rebase "Please commit or stash them."</tt></pre> +<pre><code>require_clean_work_tree rebase "Please commit or stash them."</code></pre> </div></div> </dd> <dt class="hdlist1">
diff --git a/git-shell.html b/git-shell.html index ccbf761..ebaac43 100644 --- a/git-shell.html +++ b/git-shell.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-shell(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -751,8 +749,8 @@ <div class="sectionbody"> <div class="verseblock"> <pre class="content"><em>chsh</em> -s $(command -v git-shell) <user> -<em>git clone</em> <user><tt>@localhost:/path/to/repo.git</tt> -<em>ssh</em> <user><tt>@localhost</tt></pre> +<em>git clone</em> <user><code>@localhost:/path/to/repo.git</code> +<em>ssh</em> <user><code>@localhost</code></pre> <div class="attribution"> </div></div> </div> @@ -763,7 +761,7 @@ <div class="paragraph"><p>This is a login shell for SSH accounts to provide restricted Git access. It permits execution only of server-side Git commands implementing the pull/push functionality, plus custom commands present in a subdirectory -named <tt>git-shell-commands</tt> in the user’s home directory.</p></div> +named <code>git-shell-commands</code> in the user’s home directory.</p></div> </div> </div> <div class="sect1"> @@ -796,9 +794,9 @@ </p> </dd> </dl></div> -<div class="paragraph"><p>If a <tt>~/git-shell-commands</tt> directory is present, <em>git shell</em> will +<div class="paragraph"><p>If a <code>~/git-shell-commands</code> directory is present, <em>git shell</em> will also handle other, custom commands by running -"<tt>git-shell-commands/<command> <arguments></tt>" from the user’s home +"<code>git-shell-commands/<command> <arguments></code>" from the user’s home directory.</p></div> </div> </div> @@ -807,18 +805,18 @@ <div class="sectionbody"> <div class="paragraph"><p>By default, the commands above can be executed only with the <em>-c</em> option; the shell is not interactive.</p></div> -<div class="paragraph"><p>If a <tt>~/git-shell-commands</tt> directory is present, <em>git shell</em> -can also be run interactively (with no arguments). If a <tt>help</tt> -command is present in the <tt>git-shell-commands</tt> directory, it is +<div class="paragraph"><p>If a <code>~/git-shell-commands</code> directory is present, <em>git shell</em> +can also be run interactively (with no arguments). If a <code>help</code> +command is present in the <code>git-shell-commands</code> directory, it is run to provide the user with an overview of allowed actions. Then a "git> " prompt is presented at which one can enter any of the -commands from the <tt>git-shell-commands</tt> directory, or <tt>exit</tt> to close +commands from the <code>git-shell-commands</code> directory, or <code>exit</code> to close the connection.</p></div> <div class="paragraph"><p>Generally this mode is used as an administrative interface to allow users to list repositories they have access to, create, delete, or rename repositories, or change repository descriptions and permissions.</p></div> -<div class="paragraph"><p>If a <tt>no-interactive-login</tt> command exists, then it is run and the +<div class="paragraph"><p>If a <code>no-interactive-login</code> command exists, then it is run and the interactive shell is aborted.</p></div> </div> </div> @@ -828,7 +826,7 @@ <div class="paragraph"><p>To disable interactive logins, displaying a greeting instead:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ chsh -s /usr/bin/git-shell +<pre><code>$ chsh -s /usr/bin/git-shell $ mkdir $HOME/git-shell-commands $ cat >$HOME/git-shell-commands/no-interactive-login <<\EOF #!/bin/sh @@ -836,7 +834,7 @@ printf '%s\n' "provide interactive shell access." exit 128 EOF -$ chmod +x $HOME/git-shell-commands/no-interactive-login</tt></pre> +$ chmod +x $HOME/git-shell-commands/no-interactive-login</code></pre> </div></div> </div> </div>
diff --git a/git-shortlog.html b/git-shortlog.html index 82d2c43..201e268 100644 --- a/git-shortlog.html +++ b/git-shortlog.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-shortlog(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -813,12 +811,12 @@ <p> Instead of the commit subject, use some other information to describe each commit. <em><format></em> can be any string accepted - by the <tt>--format</tt> option of <em>git log</em>, such as <em>* [%h] %s</em>. + by the <code>--format</code> option of <em>git log</em>, such as <em>* [%h] %s</em>. (See the "PRETTY FORMATS" section of <a href="git-log.html">git-log(1)</a>.) </p> <div class="literalblock"> <div class="content"> -<pre><tt>Each pretty-printed commit will be rewrapped before it is shown.</tt></pre> +<pre><code>Each pretty-printed commit will be rewrapped before it is shown.</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -826,12 +824,12 @@ </dt> <dd> <p> - Linewrap the output by wrapping each line at <tt>width</tt>. The first - line of each entry is indented by <tt>indent1</tt> spaces, and the second - and subsequent lines are indented by <tt>indent2</tt> spaces. <tt>width</tt>, - <tt>indent1</tt>, and <tt>indent2</tt> default to 76, 6 and 9 respectively. + Linewrap the output by wrapping each line at <code>width</code>. The first + line of each entry is indented by <code>indent1</code> spaces, and the second + and subsequent lines are indented by <code>indent2</code> spaces. <code>width</code>, + <code>indent1</code>, and <code>indent2</code> default to 76, 6 and 9 respectively. </p> -<div class="paragraph"><p>If width is <tt>0</tt> (zero) then indent the lines of the output without wrapping +<div class="paragraph"><p>If width is <code>0</code> (zero) then indent the lines of the output without wrapping them.</p></div> </dd> <dt class="hdlist1"> @@ -840,10 +838,10 @@ <dd> <p> Show only commits in the specified revision range. When no - <revision range> is specified, it defaults to <tt>HEAD</tt> (i.e. the - whole history leading to the current commit). <tt>origin..HEAD</tt> + <revision range> is specified, it defaults to <code>HEAD</code> (i.e. the + whole history leading to the current commit). <code>origin..HEAD</code> specifies all the commits reachable from the current commit - (i.e. <tt>HEAD</tt>), but not from <tt>origin</tt>. For a complete list of + (i.e. <code>HEAD</code>), but not from <code>origin</code>. For a complete list of ways to spell <revision range>, see the "Specifying Ranges" section of <a href="gitrevisions.html">gitrevisions(7)</a>. </p> @@ -865,10 +863,10 @@ <div class="sect1"> <h2 id="_mapping_authors">MAPPING AUTHORS</h2> <div class="sectionbody"> -<div class="paragraph"><p>The <tt>.mailmap</tt> feature is used to coalesce together commits by the same +<div class="paragraph"><p>The <code>.mailmap</code> feature is used to coalesce together commits by the same person in the shortlog, where their name and/or email address was spelled differently.</p></div> -<div class="paragraph"><p>If the file <tt>.mailmap</tt> exists at the toplevel of the repository, or at +<div class="paragraph"><p>If the file <code>.mailmap</code> exists at the toplevel of the repository, or at the location pointed to by the mailmap.file or mailmap.blob configuration options, it is used to map author and committer names and email addresses to @@ -880,7 +878,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>Proper Name <commit@email.xx></tt></pre> +<pre><code>Proper Name <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>The more complex forms are:</p></div> @@ -888,7 +886,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt><proper@email.xx> <commit@email.xx></tt></pre> +<pre><code><proper@email.xx> <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>which allows mailmap to replace only the email part of a commit, and:</p></div> @@ -896,7 +894,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>Proper Name <proper@email.xx> <commit@email.xx></tt></pre> +<pre><code>Proper Name <proper@email.xx> <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>which allows mailmap to replace both the name and the email of a @@ -905,7 +903,7 @@ <div class="content"> <div class="literalblock"> <div class="content"> -<pre><tt>Proper Name <proper@email.xx> Commit Name <commit@email.xx></tt></pre> +<pre><code>Proper Name <proper@email.xx> Commit Name <commit@email.xx></code></pre> </div></div> </div></div> <div class="paragraph"><p>which allows mailmap to replace both the name and the email of a @@ -914,41 +912,41 @@ and Joe, whose names appear in the repository under several forms:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Joe Developer <joe@example.com> +<pre><code>Joe Developer <joe@example.com> Joe R. Developer <joe@example.com> Jane Doe <jane@example.com> Jane Doe <jane@laptop.(none)> -Jane D. <jane@desktop.(none)></tt></pre> +Jane D. <jane@desktop.(none)></code></pre> </div></div> <div class="paragraph"><p>Now suppose that Joe wants his middle name initial used, and Jane -prefers her family name fully spelled out. A proper <tt>.mailmap</tt> file +prefers her family name fully spelled out. A proper <code>.mailmap</code> file would look like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Jane Doe <jane@desktop.(none)> -Joe R. Developer <joe@example.com></tt></pre> +<pre><code>Jane Doe <jane@desktop.(none)> +Joe R. Developer <joe@example.com></code></pre> </div></div> -<div class="paragraph"><p>Note how there is no need for an entry for <tt><jane@laptop.(none)></tt>, because the +<div class="paragraph"><p>Note how there is no need for an entry for <code><jane@laptop.(none)></code>, because the real name of that author is already correct.</p></div> <div class="paragraph"><p>Example 2: Your repository contains commits from the following authors:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>nick1 <bugs@company.xx> +<pre><code>nick1 <bugs@company.xx> nick2 <bugs@company.xx> nick2 <nick2@company.xx> santa <me@company.xx> claus <me@company.xx> -CTO <cto@coompany.xx></tt></pre> +CTO <cto@coompany.xx></code></pre> </div></div> -<div class="paragraph"><p>Then you might want a <tt>.mailmap</tt> file that looks like:</p></div> +<div class="paragraph"><p>Then you might want a <code>.mailmap</code> file that looks like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><cto@company.xx> <cto@coompany.xx> +<pre><code><cto@company.xx> <cto@coompany.xx> Some Dude <some@dude.xx> nick1 <bugs@company.xx> Other Author <other@author.xx> nick2 <bugs@company.xx> Other Author <other@author.xx> <nick2@company.xx> -Santa Claus <santa.claus@northpole.xx> <me@company.xx></tt></pre> +Santa Claus <santa.claus@northpole.xx> <me@company.xx></code></pre> </div></div> <div class="paragraph"><p>Use hash <em>#</em> for comments that are either on their own line, or after the email address.</p></div>
diff --git a/git-show-branch.html b/git-show-branch.html index c1b53fa..44f507f 100644 --- a/git-show-branch.html +++ b/git-show-branch.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-show-branch(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -767,7 +765,7 @@ with <rev>s or <globs>s (or all refs under refs/heads and/or refs/tags) semi-visually.</p></div> <div class="paragraph"><p>It cannot show more than 29 branches and commits at a time.</p></div> -<div class="paragraph"><p>It uses <tt>showbranch.default</tt> multi-valued configuration items if +<div class="paragraph"><p>It uses <code>showbranch.default</code> multi-valued configuration items if no <rev> or <glob> is given on the command line.</p></div> </div> </div> @@ -792,7 +790,7 @@ A glob pattern that matches branch or tag names under refs/. For example, if you have many topic branches under refs/heads/topic, giving - <tt>topic/*</tt> would show all of them. + <code>topic/*</code> would show all of them. </p> </dd> <dt class="hdlist1"> @@ -876,7 +874,7 @@ </dt> <dd> <p> - Synonym to <tt>--more=-1</tt> + Synonym to <code>--more=-1</code> </p> </dd> <dt class="hdlist1"> @@ -944,7 +942,7 @@ ref. If <base> is given, <n> entries going back from that entry. <base> can be specified as count or date. When no explicit <ref> parameter is given, it defaults to the - current branch (or <tt>HEAD</tt> if it is detached). + current branch (or <code>HEAD</code> if it is detached). </p> </dd> <dt class="hdlist1"> @@ -952,7 +950,7 @@ </dt> <dd> <p> - Color the status sign (one of these: <tt>*</tt> <tt>!</tt> <tt>+</tt> <tt>-</tt>) of each commit + Color the status sign (one of these: <code>*</code> <code>!</code> <code>+</code> <code>-</code>) of each commit corresponding to the branch it’s in. The value must be always (the default), never, or auto. </p> @@ -964,7 +962,7 @@ <p> Turn off colored output, even when the configuration file gives the default to color output. - Same as <tt>--color=never</tt>. + Same as <code>--color=never</code>. </p> </dd> </dl></div> @@ -977,19 +975,19 @@ <div class="sectionbody"> <div class="paragraph"><p>Given N <references>, the first N lines are the one-line description from their commit message. The branch head that is -pointed at by $GIT_DIR/HEAD is prefixed with an asterisk <tt>*</tt> -character while other heads are prefixed with a <tt>!</tt> character.</p></div> +pointed at by $GIT_DIR/HEAD is prefixed with an asterisk <code>*</code> +character while other heads are prefixed with a <code>!</code> character.</p></div> <div class="paragraph"><p>Following these N lines, one-line log for each commit is displayed, indented N places. If a commit is on the I-th -branch, the I-th indentation character shows a <tt>+</tt> sign; +branch, the I-th indentation character shows a <code>+</code> sign; otherwise it shows a space. Merge commits are denoted by -a <tt>-</tt> sign. Each commit shows a short name that +a <code>-</code> sign. Each commit shows a short name that can be used as an extended SHA-1 to name that commit.</p></div> <div class="paragraph"><p>The following example shows three branches, "master", "fixes" and "mhf":</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git show-branch master fixes mhf +<pre><code>$ git show-branch master fixes mhf * [master] Add 'git show-branch'. ! [fixes] Introduce "reset type" flag to "git reset" ! [mhf] Allow "+remote:local" refspec to cause --force when fetching. @@ -1004,7 +1002,7 @@ + [mhf~6] Retire git-parse-remote. + [mhf~7] Multi-head fetch. + [mhf~8] Start adding the $GIT_DIR/remotes/ support. -*++ [master] Add 'git show-branch'.</tt></pre> +*++ [master] Add 'git show-branch'.</code></pre> </div></div> <div class="paragraph"><p>These three branches all forked from a common commit, [master], whose commit message is "Add 'git show-branch'". @@ -1017,23 +1015,23 @@ <h2 id="_example">EXAMPLE</h2> <div class="sectionbody"> <div class="paragraph"><p>If you keep your primary branches immediately under -<tt>refs/heads</tt>, and topic branches in subdirectories of +<code>refs/heads</code>, and topic branches in subdirectories of it, having the following in the configuration file may help:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[showbranch] +<pre><code>[showbranch] default = --topo-order - default = heads/*</tt></pre> + default = heads/*</code></pre> </div></div> -<div class="paragraph"><p>With this, <tt>git show-branch</tt> without extra parameters would show +<div class="paragraph"><p>With this, <code>git show-branch</code> without extra parameters would show only the primary branches. In addition, if you happen to be on your topic branch, it is shown as well.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git show-branch --reflog="10,1 hour ago" --list master</tt></pre> +<pre><code>$ git show-branch --reflog="10,1 hour ago" --list master</code></pre> </div></div> <div class="paragraph"><p>shows 10 reflog entries going back from the tip as of 1 hour ago. -Without <tt>--list</tt>, the output also shows how these tips are +Without <code>--list</code>, the output also shows how these tips are topologically related with each other.</p></div> </div> </div>
diff --git a/git-show-index.html b/git-show-index.html index ae2dc82..51a1695 100644 --- a/git-show-index.html +++ b/git-show-index.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-show-index(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-show-ref.html b/git-show-ref.html index 579ecee..2833090 100644 --- a/git-show-ref.html +++ b/git-show-ref.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-show-ref(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -769,7 +767,7 @@ <div class="paragraph"><p>The --exclude-existing form is a filter that does the inverse, it shows the refs from stdin that don’t exist in the local repository.</p></div> <div class="paragraph"><p>Use of this utility is encouraged in favor of directly accessing files under -the <tt>.git</tt> directory.</p></div> +the <code>.git</code> directory.</p></div> </div> </div> <div class="sect1"> @@ -836,8 +834,8 @@ </dt> <dd> <p> - Abbreviate the object name. When using <tt>--hash</tt>, you do - not have to say <tt>--hash --abbrev</tt>; <tt>--hash=n</tt> would do. + Abbreviate the object name. When using <code>--hash</code>, you do + not have to say <code>--hash --abbrev</code>; <code>--hash=n</code> would do. </p> </dd> <dt class="hdlist1"> @@ -858,7 +856,7 @@ <dd> <p> Make <em>git show-ref</em> act as a filter that reads refs from stdin of the - form "<tt>^(?:<anything>\s)?<refname>(?:\^{})?$</tt>" + form "<code>^(?:<anything>\s)?<refname>(?:\^{})?$</code>" and performs the following actions on each: (1) strip "^{}" at the end of line if any; (2) ignore if pattern is provided and does not head-match refname; @@ -888,7 +886,7 @@ <div class="paragraph"><p>The output is in the format: <em><SHA-1 ID></em> <em><space></em> <em><reference name></em>.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git show-ref --head --dereference +<pre><code>$ git show-ref --head --dereference 832e76a9899f560a90ffd62ae2ce83bbeff58f54 HEAD 832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/master 832e76a9899f560a90ffd62ae2ce83bbeff58f54 refs/heads/origin @@ -896,16 +894,16 @@ 6ddc0964034342519a87fe013781abf31c6db6ad refs/tags/v0.99.9c^{} 055e4ae3ae6eb344cbabf2a5256a49ea66040131 refs/tags/v1.0rc4 423325a2d24638ddcc82ce47be5e40be550f4507 refs/tags/v1.0rc4^{} -...</tt></pre> +...</code></pre> </div></div> <div class="paragraph"><p>When using --hash (and not --dereference) the output format is: <em><SHA-1 ID></em></p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git show-ref --heads --hash +<pre><code>$ git show-ref --heads --hash 2e3ba0114a1f52b47df29743d6915d056be13278 185008ae97960c8d551adcd9e23565194651b5d1 03adf42c988195b50e1a1935ba5fcbc39b2b029b -...</tt></pre> +...</code></pre> </div></div> </div> </div> @@ -917,14 +915,14 @@ use:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> git show-ref master</tt></pre> +<pre><code> git show-ref master</code></pre> </div></div> <div class="paragraph"><p>This will show "refs/heads/master" but also "refs/remote/other-repo/master", if such references exists.</p></div> <div class="paragraph"><p>When using the <em>--verify</em> flag, the command requires an exact path:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> git show-ref --verify refs/heads/master</tt></pre> +<pre><code> git show-ref --verify refs/heads/master</code></pre> </div></div> <div class="paragraph"><p>will only match the exact branch called "master".</p></div> <div class="paragraph"><p>If nothing matches, <em>git show-ref</em> will return an error code of 1, @@ -933,8 +931,8 @@ allows you to do things like</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> git show-ref --quiet --verify -- "refs/heads/$headname" || - echo "$headname is not a valid branch"</tt></pre> +<pre><code> git show-ref --quiet --verify -- "refs/heads/$headname" || + echo "$headname is not a valid branch"</code></pre> </div></div> <div class="paragraph"><p>to check whether a particular branch exists or not (notice how we don’t actually want to show any results, and we want to use the full refname for it @@ -946,7 +944,7 @@ flag, so you can do</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> git show-ref --tags --dereference</tt></pre> +<pre><code> git show-ref --tags --dereference</code></pre> </div></div> <div class="paragraph"><p>to get a listing of all tags together with what they dereference.</p></div> </div> @@ -954,7 +952,7 @@ <div class="sect1"> <h2 id="_files">FILES</h2> <div class="sectionbody"> -<div class="paragraph"><p><tt>.git/refs/*</tt>, <tt>.git/packed-refs</tt></p></div> +<div class="paragraph"><p><code>.git/refs/*</code>, <code>.git/packed-refs</code></p></div> </div> </div> <div class="sect1">
diff --git a/git-stash.html b/git-stash.html index 74dc202..c30b612 100644 --- a/git-stash.html +++ b/git-stash.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-stash(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -767,21 +765,21 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>Use <tt>git stash</tt> when you want to record the current state of the +<div class="paragraph"><p>Use <code>git stash</code> when you want to record the current state of the working directory and the index, but want to go back to a clean working directory. The command saves your local modifications away -and reverts the working directory to match the <tt>HEAD</tt> commit.</p></div> +and reverts the working directory to match the <code>HEAD</code> commit.</p></div> <div class="paragraph"><p>The modifications stashed away by this command can be listed with -<tt>git stash list</tt>, inspected with <tt>git stash show</tt>, and restored -(potentially on top of a different commit) with <tt>git stash apply</tt>. -Calling <tt>git stash</tt> without any arguments is equivalent to <tt>git stash save</tt>. +<code>git stash list</code>, inspected with <code>git stash show</code>, and restored +(potentially on top of a different commit) with <code>git stash apply</code>. +Calling <code>git stash</code> without any arguments is equivalent to <code>git stash save</code>. A stash is by default listed as "WIP on <em>branchname</em> …", but you can give a more descriptive message on the command line when you create one.</p></div> -<div class="paragraph"><p>The latest stash you created is stored in <tt>refs/stash</tt>; older +<div class="paragraph"><p>The latest stash you created is stored in <code>refs/stash</code>; older stashes are found in the reflog of this reference and can be named using -the usual reflog syntax (e.g. <tt>stash@{0}</tt> is the most recently -created stash, <tt>stash@{1}</tt> is the one before it, <tt>stash@{2.hours.ago}</tt> +the usual reflog syntax (e.g. <code>stash@{0}</code> is the most recently +created stash, <code>stash@{1}</code> is the one before it, <code>stash@{2.hours.ago}</code> is also possible).</p></div> </div> </div> @@ -794,28 +792,28 @@ </dt> <dd> <p> - Save your local modifications to a new <em>stash</em>, and run <tt>git reset - --hard</tt> to revert them. The <message> part is optional and gives + Save your local modifications to a new <em>stash</em>, and run <code>git reset + --hard</code> to revert them. The <message> part is optional and gives the description along with the stashed state. For quickly making a snapshot, you can omit <em>both</em> "save" and <message>, but giving only <message> does not trigger this action to prevent a misspelled subcommand from making an unwanted stash. </p> -<div class="paragraph"><p>If the <tt>--keep-index</tt> option is used, all changes already added to the +<div class="paragraph"><p>If the <code>--keep-index</code> option is used, all changes already added to the index are left intact.</p></div> -<div class="paragraph"><p>If the <tt>--include-untracked</tt> option is used, all untracked files are also -stashed and then cleaned up with <tt>git clean</tt>, leaving the working directory -in a very clean state. If the <tt>--all</tt> option is used instead then the +<div class="paragraph"><p>If the <code>--include-untracked</code> option is used, all untracked files are also +stashed and then cleaned up with <code>git clean</code>, leaving the working directory +in a very clean state. If the <code>--all</code> option is used instead then the ignored files are stashed and cleaned in addition to the untracked files.</p></div> -<div class="paragraph"><p>With <tt>--patch</tt>, you can interactively select hunks from the diff +<div class="paragraph"><p>With <code>--patch</code>, you can interactively select hunks from the diff between HEAD and the working tree to be stashed. The stash entry is constructed such that its index state is the same as the index state of your repository, and its worktree contains only the changes you selected interactively. The selected changes are then rolled back from your worktree. See the “Interactive Mode” section of -<a href="git-add.html">git-add(1)</a> to learn how to operate the <tt>--patch</tt> mode.</p></div> -<div class="paragraph"><p>The <tt>--patch</tt> option implies <tt>--keep-index</tt>. You can use -<tt>--no-keep-index</tt> to override this.</p></div> +<a href="git-add.html">git-add(1)</a> to learn how to operate the <code>--patch</code> mode.</p></div> +<div class="paragraph"><p>The <code>--patch</code> option implies <code>--keep-index</code>. You can use +<code>--no-keep-index</code> to override this.</p></div> </dd> <dt class="hdlist1"> list [<options>] @@ -823,15 +821,15 @@ <dd> <p> List the stashes that you currently have. Each <em>stash</em> is listed - with its name (e.g. <tt>stash@{0}</tt> is the latest stash, <tt>stash@{1}</tt> is + with its name (e.g. <code>stash@{0}</code> is the latest stash, <code>stash@{1}</code> is the one before, etc.), the name of the branch that was current when the stash was made, and a short description of the commit the stash was based on. </p> <div class="listingblock"> <div class="content"> -<pre><tt>stash@{0}: WIP on submit: 6ebd0e2... Update git-stash documentation -stash@{1}: On master: 9cc0589... Add git-stash</tt></pre> +<pre><code>stash@{0}: WIP on submit: 6ebd0e2... Update git-stash documentation +stash@{1}: On master: 9cc0589... Add git-stash</code></pre> </div></div> <div class="paragraph"><p>The command takes options applicable to the <em>git log</em> command to control what is shown and how. See <a href="git-log.html">git-log(1)</a>.</p></div> @@ -842,10 +840,10 @@ <dd> <p> Show the changes recorded in the stash as a diff between the - stashed state and its original parent. When no <tt><stash></tt> is given, + stashed state and its original parent. When no <code><stash></code> is given, shows the latest one. By default, the command shows the diffstat, but - it will accept any format known to <em>git diff</em> (e.g., <tt>git stash show - -p stash@{1}</tt> to view the second most recent stash in patch form). + it will accept any format known to <em>git diff</em> (e.g., <code>git stash show + -p stash@{1}</code> to view the second most recent stash in patch form). </p> </dd> <dt class="hdlist1"> @@ -855,27 +853,27 @@ <p> Remove a single stashed state from the stash list and apply it on top of the current working tree state, i.e., do the inverse - operation of <tt>git stash save</tt>. The working directory must + operation of <code>git stash save</code>. The working directory must match the index. </p> <div class="paragraph"><p>Applying the state can fail with conflicts; in this case, it is not removed from the stash list. You need to resolve the conflicts by hand -and call <tt>git stash drop</tt> manually afterwards.</p></div> -<div class="paragraph"><p>If the <tt>--index</tt> option is used, then tries to reinstate not only the working +and call <code>git stash drop</code> manually afterwards.</p></div> +<div class="paragraph"><p>If the <code>--index</code> option is used, then tries to reinstate not only the working tree’s changes, but also the index’s ones. However, this can fail, when you have conflicts (which are stored in the index, where you therefore can no longer apply the changes as they were originally).</p></div> -<div class="paragraph"><p>When no <tt><stash></tt> is given, <tt>stash@{0}</tt> is assumed, otherwise <tt><stash></tt> must -be a reference of the form <tt>stash@{<revision>}</tt>.</p></div> +<div class="paragraph"><p>When no <code><stash></code> is given, <code>stash@{0}</code> is assumed, otherwise <code><stash></code> must +be a reference of the form <code>stash@{<revision>}</code>.</p></div> </dd> <dt class="hdlist1"> apply [--index] [-q|--quiet] [<stash>] </dt> <dd> <p> - Like <tt>pop</tt>, but do not remove the state from the stash list. Unlike <tt>pop</tt>, - <tt><stash></tt> may be any commit that looks like a commit created by - <tt>stash save</tt> or <tt>stash create</tt>. + Like <code>pop</code>, but do not remove the state from the stash list. Unlike <code>pop</code>, + <code><stash></code> may be any commit that looks like a commit created by + <code>stash save</code> or <code>stash create</code>. </p> </dd> <dt class="hdlist1"> @@ -883,17 +881,17 @@ </dt> <dd> <p> - Creates and checks out a new branch named <tt><branchname></tt> starting from - the commit at which the <tt><stash></tt> was originally created, applies the - changes recorded in <tt><stash></tt> to the new working tree and index. - If that succeeds, and <tt><stash></tt> is a reference of the form - <tt>stash@{<revision>}</tt>, it then drops the <tt><stash></tt>. When no <tt><stash></tt> + Creates and checks out a new branch named <code><branchname></code> starting from + the commit at which the <code><stash></code> was originally created, applies the + changes recorded in <code><stash></code> to the new working tree and index. + If that succeeds, and <code><stash></code> is a reference of the form + <code>stash@{<revision>}</code>, it then drops the <code><stash></code>. When no <code><stash></code> is given, applies the latest one. </p> -<div class="paragraph"><p>This is useful if the branch on which you ran <tt>git stash save</tt> has -changed enough that <tt>git stash apply</tt> fails due to conflicts. Since +<div class="paragraph"><p>This is useful if the branch on which you ran <code>git stash save</code> has +changed enough that <code>git stash apply</code> fails due to conflicts. Since the stash is applied on top of the commit that was HEAD at the time -<tt>git stash</tt> was run, it restores the originally stashed state with +<code>git stash</code> was run, it restores the originally stashed state with no conflicts.</p></div> </dd> <dt class="hdlist1"> @@ -911,10 +909,10 @@ </dt> <dd> <p> - Remove a single stashed state from the stash list. When no <tt><stash></tt> - is given, it removes the latest one. i.e. <tt>stash@{0}</tt>, otherwise - <tt><stash></tt> must be a valid stash log reference of the form - <tt>stash@{<revision>}</tt>. + Remove a single stashed state from the stash list. When no <code><stash></code> + is given, it removes the latest one. i.e. <code>stash@{0}</code>, otherwise + <code><stash></code> must be a valid stash log reference of the form + <code>stash@{<revision>}</code>. </p> </dd> <dt class="hdlist1"> @@ -946,18 +944,18 @@ <h2 id="_discussion">DISCUSSION</h2> <div class="sectionbody"> <div class="paragraph"><p>A stash is represented as a commit whose tree records the state of the -working directory, and its first parent is the commit at <tt>HEAD</tt> when +working directory, and its first parent is the commit at <code>HEAD</code> when the stash was created. The tree of the second parent records the state of the index when the stash is made, and it is made a child of -the <tt>HEAD</tt> commit. The ancestry graph looks like this:</p></div> +the <code>HEAD</code> commit. The ancestry graph looks like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> .----W +<pre><code> .----W / / ------H----I</tt></pre> +-----H----I</code></pre> </div></div> -<div class="paragraph"><p>where <tt>H</tt> is the <tt>HEAD</tt> commit, <tt>I</tt> is a commit that records the state -of the index, and <tt>W</tt> is a commit that records the state of the working +<div class="paragraph"><p>where <code>H</code> is the <code>HEAD</code> commit, <code>I</code> is a commit that records the state +of the index, and <code>W</code> is a commit that records the state of the working tree.</p></div> </div> </div> @@ -973,20 +971,20 @@ When you are in the middle of something, you learn that there are upstream changes that are possibly relevant to what you are doing. When your local changes do not conflict with the changes in -the upstream, a simple <tt>git pull</tt> will let you move forward. +the upstream, a simple <code>git pull</code> will let you move forward. </p> <div class="paragraph"><p>However, there are cases in which your local changes do conflict with -the upstream changes, and <tt>git pull</tt> refuses to overwrite your +the upstream changes, and <code>git pull</code> refuses to overwrite your changes. In such a case, you can stash your changes away, perform a pull, and then unstash, like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git pull +<pre><code>$ git pull ... file foobar not up to date, cannot merge. $ git stash $ git pull -$ git stash pop</tt></pre> +$ git stash pop</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -1001,7 +999,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt># ... hack hack hack ... +<pre><code># ... hack hack hack ... $ git checkout -b my_wip $ git commit -a -m "WIP" $ git checkout master @@ -1009,17 +1007,17 @@ $ git commit -a -m "Fix in a hurry" $ git checkout my_wip $ git reset --soft HEAD^ -# ... continue hacking ...</tt></pre> +# ... continue hacking ...</code></pre> </div></div> <div class="paragraph"><p>You can use <em>git stash</em> to simplify the above, like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt># ... hack hack hack ... +<pre><code># ... hack hack hack ... $ git stash $ edit emergency fix $ git commit -a -m "Fix in a hurry" $ git stash pop -# ... continue hacking ...</tt></pre> +# ... continue hacking ...</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -1027,13 +1025,13 @@ </dt> <dd> <p> -You can use <tt>git stash save --keep-index</tt> when you want to make two or +You can use <code>git stash save --keep-index</code> when you want to make two or more commits out of the changes in the work tree, and you want to test each change before committing: </p> <div class="listingblock"> <div class="content"> -<pre><tt># ... hack hack hack ... +<pre><code># ... hack hack hack ... $ git add --patch foo # add just first part to the index $ git stash save --keep-index # save all other changes to the stash $ edit/build/test first part @@ -1041,7 +1039,7 @@ $ git stash pop # prepare to work on all other changes # ... repeat above five steps until one commit remains ... $ edit/build/test remaining parts -$ git commit foo -m 'Remaining parts'</tt></pre> +$ git commit foo -m 'Remaining parts'</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -1056,9 +1054,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>git fsck --unreachable | +<pre><code>git fsck --unreachable | grep commit | cut -d\ -f3 | -xargs git log --merges --no-walk --grep=WIP</tt></pre> +xargs git log --merges --no-walk --grep=WIP</code></pre> </div></div> </dd> </dl></div>
diff --git a/git-stripspace.html b/git-stripspace.html index 0569eba..825d026 100644 --- a/git-stripspace.html +++ b/git-stripspace.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-stripspace(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -785,7 +783,7 @@ </ul></div> <div class="paragraph"><p>In the case where the input consists entirely of whitespace characters, no output will be produced.</p></div> -<div class="paragraph"><p><strong>NOTE</strong>: This is intended for cleaning metadata, prefer the <tt>--whitespace=fix</tt> +<div class="paragraph"><p><strong>NOTE</strong>: This is intended for cleaning metadata, prefer the <code>--whitespace=fix</code> mode of <a href="git-apply.html">git-apply(1)</a> for correcting whitespace of patches or files in the repository.</p></div> </div> @@ -827,7 +825,7 @@ <div class="paragraph"><p>Given the following noisy input with <em>$</em> indicating the end of a line:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>|A brief introduction $ +<pre><code>|A brief introduction $ | $ |$ |A new paragraph$ @@ -837,12 +835,12 @@ |# An old paragraph, also commented-out. $ | $ |The end.$ -| $</tt></pre> +| $</code></pre> </div></div> <div class="paragraph"><p>Use <em>git stripspace</em> with no arguments to obtain:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>|A brief introduction$ +<pre><code>|A brief introduction$ |$ |A new paragraph$ |# with a commented-out line$ @@ -850,17 +848,17 @@ |$ |# An old paragraph, also commented-out.$ |$ -|The end.$</tt></pre> +|The end.$</code></pre> </div></div> <div class="paragraph"><p>Use <em>git stripspace --strip-comments</em> to obtain:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>|A brief introduction$ +<pre><code>|A brief introduction$ |$ |A new paragraph$ |explaining lots of stuff.$ |$ -|The end.$</tt></pre> +|The end.$</code></pre> </div></div> </div> </div>
diff --git a/git-submodule.html b/git-submodule.html index 9585271..a6cf95a 100644 --- a/git-submodule.html +++ b/git-submodule.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-submodule(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -784,10 +782,10 @@ instead of treating the other project as a submodule. Directories that come from both projects can be cloned and checked out as a whole if you choose to go that route.</p></div> -<div class="paragraph"><p>Submodules are composed from a so-called <tt>gitlink</tt> tree entry +<div class="paragraph"><p>Submodules are composed from a so-called <code>gitlink</code> tree entry in the main repository that refers to a particular commit object within the inner repository that is completely separate. -A record in the <tt>.gitmodules</tt> (see <a href="gitmodules.html">gitmodules(5)</a>) file at the +A record in the <code>.gitmodules</code> (see <a href="gitmodules.html">gitmodules(5)</a>) file at the root of the source tree assigns a logical name to the submodule and describes the default URL the submodule shall be cloned from. The logical name can be used for overriding this URL within your @@ -825,7 +823,7 @@ "humanish" part of the source repository is used ("repo" for "/path/to/repo.git" and "foo" for "host.xz:foo/.git"). The <path> is also used as the submodule’s logical name in its -configuration entries unless <tt>--name</tt> is used to specify a logical name.</p></div> +configuration entries unless <code>--name</code> is used to specify a logical name.</p></div> <div class="paragraph"><p><repository> is the URL of the new submodule’s origin repository. This may be either an absolute URL, or (if it begins with ./ or ../), the location relative to the superproject’s origin @@ -860,12 +858,12 @@ Show the status of the submodules. This will print the SHA-1 of the currently checked out commit for each submodule, along with the submodule path and the output of <em>git describe</em> for the - SHA-1. Each SHA-1 will be prefixed with <tt>-</tt> if the submodule is not - initialized, <tt>+</tt> if the currently checked out submodule commit + SHA-1. Each SHA-1 will be prefixed with <code>-</code> if the submodule is not + initialized, <code>+</code> if the currently checked out submodule commit does not match the SHA-1 found in the index of the containing - repository and <tt>U</tt> if the submodule has merge conflicts. + repository and <code>U</code> if the submodule has merge conflicts. </p> -<div class="paragraph"><p>If <tt>--recursive</tt> is specified, this command will recurse into nested +<div class="paragraph"><p>If <code>--recursive</code> is specified, this command will recurse into nested submodules, and show their status as well.</p></div> <div class="paragraph"><p>If you are only interested in changes of the currently initialized submodules with respect to the commit recorded in the index or the HEAD, @@ -881,13 +879,13 @@ added and committed elsewhere) by copying submodule names and urls from .gitmodules to .git/config. Optional <path> arguments limit which submodules will be initialized. - It will also copy the value of <tt>submodule.$name.update</tt> into + It will also copy the value of <code>submodule.$name.update</code> into .git/config. - The key used in .git/config is <tt>submodule.$name.url</tt>. + The key used in .git/config is <code>submodule.$name.url</code>. This command does not alter existing information in .git/config. You can then customize the submodule clone URLs in .git/config - for your local setup and proceed to <tt>git submodule update</tt>; - you can also just use <tt>git submodule update --init</tt> without + for your local setup and proceed to <code>git submodule update</code>; + you can also just use <code>git submodule update --init</code> without the explicit <em>init</em> step if you do not intend to customize any submodule locations. </p> @@ -898,15 +896,15 @@ <dd> <p> Unregister the given submodules, i.e. remove the whole - <tt>submodule.$name</tt> section from .git/config together with their work - tree. Further calls to <tt>git submodule update</tt>, <tt>git submodule foreach</tt> - and <tt>git submodule sync</tt> will skip any unregistered submodules until + <code>submodule.$name</code> section from .git/config together with their work + tree. Further calls to <code>git submodule update</code>, <code>git submodule foreach</code> + and <code>git submodule sync</code> will skip any unregistered submodules until they are initialized again, so use this command if you don’t want to have a local checkout of the submodule in your work tree anymore. If you really want to remove a submodule from the repository and commit that use <a href="git-rm.html">git-rm(1)</a> instead. </p> -<div class="paragraph"><p>If <tt>--force</tt> is specified, the submodule’s work tree will be removed even if +<div class="paragraph"><p>If <code>--force</code> is specified, the submodule’s work tree will be removed even if it contains local modifications.</p></div> </dd> <dt class="hdlist1"> @@ -916,20 +914,20 @@ <p> Update the registered submodules, i.e. clone missing submodules and checkout the commit specified in the index of the containing repository. - This will make the submodules HEAD be detached unless <tt>--rebase</tt> or - <tt>--merge</tt> is specified or the key <tt>submodule.$name.update</tt> is set to - <tt>rebase</tt>, <tt>merge</tt> or <tt>none</tt>. <tt>none</tt> can be overridden by specifying - <tt>--checkout</tt>. Setting the key <tt>submodule.$name.update</tt> to <tt>!command</tt> - will cause <tt>command</tt> to be run. <tt>command</tt> can be any arbitrary shell + This will make the submodules HEAD be detached unless <code>--rebase</code> or + <code>--merge</code> is specified or the key <code>submodule.$name.update</code> is set to + <code>rebase</code>, <code>merge</code> or <code>none</code>. <code>none</code> can be overridden by specifying + <code>--checkout</code>. Setting the key <code>submodule.$name.update</code> to <code>!command</code> + will cause <code>command</code> to be run. <code>command</code> can be any arbitrary shell command that takes a single argument, namely the sha1 to update to. </p> <div class="paragraph"><p>If the submodule is not yet initialized, and you just want to use the setting as stored in .gitmodules, you can automatically initialize the -submodule with the <tt>--init</tt> option.</p></div> -<div class="paragraph"><p>If <tt>--recursive</tt> is specified, this command will recurse into the +submodule with the <code>--init</code> option.</p></div> +<div class="paragraph"><p>If <code>--recursive</code> is specified, this command will recurse into the registered submodules, and update any nested submodules within.</p></div> -<div class="paragraph"><p>If <tt>--force</tt> is specified, the submodule will be checked out (using -<tt>git checkout --force</tt> if appropriate), even if the commit specified in the +<div class="paragraph"><p>If <code>--force</code> is specified, the submodule will be checked out (using +<code>git checkout --force</code> if appropriate), even if the commit specified in the index of the containing repository already matches the commit checked out in the submodule.</p></div> </dd> @@ -941,13 +939,13 @@ Show commit summary between the given commit (defaults to HEAD) and working tree/index. For a submodule in question, a series of commits in the submodule between the given super project commit and the - index or working tree (switched by <tt>--cached</tt>) are shown. If the option - <tt>--files</tt> is given, show the series of commits in the submodule between + index or working tree (switched by <code>--cached</code>) are shown. If the option + <code>--files</code> is given, show the series of commits in the submodule between the index of the super project and the working tree of the submodule - (this option doesn’t allow to use the <tt>--cached</tt> option or to provide an + (this option doesn’t allow to use the <code>--cached</code> option or to provide an explicit commit). </p> -<div class="paragraph"><p>Using the <tt>--submodule=log</tt> option with <a href="git-diff.html">git-diff(1)</a> will provide that +<div class="paragraph"><p>Using the <code>--submodule=log</code> option with <a href="git-diff.html">git-diff(1)</a> will provide that information too.</p></div> </dd> <dt class="hdlist1"> @@ -963,16 +961,16 @@ superproject, $sha1 is the commit as recorded in the superproject, and $toplevel is the absolute path to the top-level of the superproject. Any submodules defined in the superproject but not checked out are - ignored by this command. Unless given <tt>--quiet</tt>, foreach prints the name + ignored by this command. Unless given <code>--quiet</code>, foreach prints the name of each submodule before evaluating the command. - If <tt>--recursive</tt> is given, submodules are traversed recursively (i.e. + If <code>--recursive</code> is given, submodules are traversed recursively (i.e. the given shell command is evaluated in nested submodules as well). A non-zero return from the command in any submodule causes the processing to terminate. This can be overridden by adding <em>|| :</em> to the end of the command. </p> -<div class="paragraph"><p>As an example, <tt>git submodule foreach 'echo $path `git -rev-parse HEAD`'</tt> will show the path and currently checked out +<div class="paragraph"><p>As an example, <code>git submodule foreach 'echo $path `git +rev-parse HEAD`'</code> will show the path and currently checked out commit for each submodule.</p></div> </dd> <dt class="hdlist1"> @@ -1017,8 +1015,8 @@ <dd> <p> Branch of repository to add as submodule. - The name of the branch is recorded as <tt>submodule.<name>.branch</tt> in - <tt>.gitmodules</tt> for <tt>update --remote</tt>. + The name of the branch is recorded as <code>submodule.<name>.branch</code> in + <code>.gitmodules</code> for <code>update --remote</code>. </p> </dd> <dt class="hdlist1"> @@ -1082,29 +1080,29 @@ This option is only valid for the update command. Instead of using the superproject’s recorded SHA-1 to update the submodule, use the status of the submodule’s remote-tracking branch. The remote used - is branch’s remote (<tt>branch.<name>.remote</tt>), defaulting to <tt>origin</tt>. - The remote branch used defaults to <tt>master</tt>, but the branch name may - be overridden by setting the <tt>submodule.<name>.branch</tt> option in - either <tt>.gitmodules</tt> or <tt>.git/config</tt> (with <tt>.git/config</tt> taking + is branch’s remote (<code>branch.<name>.remote</code>), defaulting to <code>origin</code>. + The remote branch used defaults to <code>master</code>, but the branch name may + be overridden by setting the <code>submodule.<name>.branch</code> option in + either <code>.gitmodules</code> or <code>.git/config</code> (with <code>.git/config</code> taking precedence). </p> -<div class="paragraph"><p>This works for any of the supported update procedures (<tt>--checkout</tt>, -<tt>--rebase</tt>, etc.). The only change is the source of the target SHA-1. -For example, <tt>submodule update --remote --merge</tt> will merge upstream -submodule changes into the submodules, while <tt>submodule update ---merge</tt> will merge superproject gitlink changes into the submodules.</p></div> -<div class="paragraph"><p>In order to ensure a current tracking branch state, <tt>update --remote</tt> +<div class="paragraph"><p>This works for any of the supported update procedures (<code>--checkout</code>, +<code>--rebase</code>, etc.). The only change is the source of the target SHA-1. +For example, <code>submodule update --remote --merge</code> will merge upstream +submodule changes into the submodules, while <code>submodule update +--merge</code> will merge superproject gitlink changes into the submodules.</p></div> +<div class="paragraph"><p>In order to ensure a current tracking branch state, <code>update --remote</code> fetches the submodule’s remote repository before calculating the -SHA-1. If you don’t want to fetch, you should use <tt>submodule update ---remote --no-fetch</tt>.</p></div> +SHA-1. If you don’t want to fetch, you should use <code>submodule update +--remote --no-fetch</code>.</p></div> <div class="paragraph"><p>Use this option to integrate changes from the upstream subproject with -your submodule’s current HEAD. Alternatively, you can run <tt>git pull</tt> +your submodule’s current HEAD. Alternatively, you can run <code>git pull</code> from the submodule, which is equivalent except for the remote branch -name: <tt>update --remote</tt> uses the default upstream repository and -<tt>submodule.<name>.branch</tt>, while <tt>git pull</tt> uses the submodule’s -<tt>branch.<name>.merge</tt>. Prefer <tt>submodule.<name>.branch</tt> if you want +name: <code>update --remote</code> uses the default upstream repository and +<code>submodule.<name>.branch</code>, while <code>git pull</code> uses the submodule’s +<code>branch.<name>.merge</code>. Prefer <code>submodule.<name>.branch</code> if you want to distribute the default upstream branch with the superproject and -<tt>branch.<name>.merge</tt> if you want a more native feel while working in +<code>branch.<name>.merge</code> if you want a more native feel while working in the submodule itself.</p></div> </dd> <dt class="hdlist1"> @@ -1127,10 +1125,10 @@ This option is only valid for the update command. Checkout the commit recorded in the superproject on a detached HEAD in the submodule. This is the default behavior, the main use of - this option is to override <tt>submodule.$name.update</tt> when set to - <tt>merge</tt>, <tt>rebase</tt> or <tt>none</tt>. - If the key <tt>submodule.$name.update</tt> is either not explicitly set or - set to <tt>checkout</tt>, this option is implicit. + this option is to override <code>submodule.$name.update</code> when set to + <code>merge</code>, <code>rebase</code> or <code>none</code>. + If the key <code>submodule.$name.update</code> is either not explicitly set or + set to <code>checkout</code>, this option is implicit. </p> </dd> <dt class="hdlist1"> @@ -1144,7 +1142,7 @@ not be detached. If a merge failure prevents this process, you will have to resolve the resulting conflicts within the submodule with the usual conflict resolution tools. - If the key <tt>submodule.$name.update</tt> is set to <tt>merge</tt>, this option is + If the key <code>submodule.$name.update</code> is set to <code>merge</code>, this option is implicit. </p> </dd> @@ -1158,7 +1156,7 @@ superproject. If this option is given, the submodule’s HEAD will not be detached. If a merge failure prevents this process, you will have to resolve these failures with <a href="git-rebase.html">git-rebase(1)</a>. - If the key <tt>submodule.$name.update</tt> is set to <tt>rebase</tt>, this option is + If the key <code>submodule.$name.update</code> is set to <code>rebase</code>, this option is implicit. </p> </dd> @@ -1192,7 +1190,7 @@ this option will be passed to the <a href="git-clone.html">git-clone(1)</a> command. </p> <div class="paragraph"><p><strong>NOTE</strong>: Do <strong>not</strong> use this option unless you have read the note -for <a href="git-clone.html">git-clone(1)</a>'s <tt>--reference</tt> and <tt>--shared</tt> options carefully.</p></div> +for <a href="git-clone.html">git-clone(1)</a>'s <code>--reference</code> and <code>--shared</code> options carefully.</p></div> </dd> <dt class="hdlist1"> --recursive @@ -1233,7 +1231,7 @@ <div class="sectionbody"> <div class="paragraph"><p>When initializing submodules, a .gitmodules file in the top-level directory of the containing repository is used to find the url of each submodule. -This file should be formatted in the same way as <tt>$GIT_DIR/config</tt>. The key +This file should be formatted in the same way as <code>$GIT_DIR/config</code>. The key to each submodule url is "submodule.$name.url". See <a href="gitmodules.html">gitmodules(5)</a> for details.</p></div> </div>
diff --git a/git-svn.html b/git-svn.html index 86e260d..3f8f3ca 100644 --- a/git-svn.html +++ b/git-svn.html
@@ -1166,6 +1166,9 @@ config key: svn.commiturl (overwrites all svn-remote.<name>.commiturl options)</pre> <div class="attribution"> </div></div> +<div class="paragraph"><p>Note that the SVN URL of the commiturl config key includes the SVN branch. +If you rather want to set the commit URL for an entire SVN repository use +svn-remote.<name>.pushurl instead.</p></div> <div class="paragraph"><p>Using this option for any other purpose (don’t ask) is very strongly discouraged.</p></div> </dd> @@ -2401,7 +2404,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-09-18 12:05:28 PDT +Last updated 2014-10-31 13:20:47 PDT </div> </div> </body>
diff --git a/git-svn.txt b/git-svn.txt index ef8ef1c..af660f9 100644 --- a/git-svn.txt +++ b/git-svn.txt
@@ -252,6 +252,10 @@ config key: svn-remote.<name>.commiturl config key: svn.commiturl (overwrites all svn-remote.<name>.commiturl options) + +Note that the SVN URL of the commiturl config key includes the SVN branch. +If you rather want to set the commit URL for an entire SVN repository use +svn-remote.<name>.pushurl instead. ++ Using this option for any other purpose (don't ask) is very strongly discouraged.
diff --git a/git-symbolic-ref.html b/git-symbolic-ref.html index 4f5cc3d..fb07860 100644 --- a/git-symbolic-ref.html +++ b/git-symbolic-ref.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-symbolic-ref(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -761,16 +759,16 @@ <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"><p>Given one argument, reads which branch head the given symbolic -ref refers to and outputs its path, relative to the <tt>.git/</tt> -directory. Typically you would give <tt>HEAD</tt> as the <name> +ref refers to and outputs its path, relative to the <code>.git/</code> +directory. Typically you would give <code>HEAD</code> as the <name> argument to see which branch your working tree is on.</p></div> <div class="paragraph"><p>Given two arguments, creates or updates a symbolic ref <name> to point at the given branch <ref>.</p></div> -<div class="paragraph"><p>Given <tt>--delete</tt> and an additional argument, deletes the given +<div class="paragraph"><p>Given <code>--delete</code> and an additional argument, deletes the given symbolic ref.</p></div> <div class="paragraph"><p>A symbolic ref is a regular file that stores a string that -begins with <tt>ref: refs/</tt>. For example, your <tt>.git/HEAD</tt> is -a regular file whose contents is <tt>ref: refs/heads/master</tt>.</p></div> +begins with <code>ref: refs/</code>. For example, your <code>.git/HEAD</code> is +a regular file whose contents is <code>ref: refs/heads/master</code>.</p></div> </div> </div> <div class="sect1"> @@ -807,7 +805,7 @@ <dd> <p> When showing the value of <name> as a symbolic ref, try to shorten the - value, e.g. from <tt>refs/heads/master</tt> to <tt>master</tt>. + value, e.g. from <code>refs/heads/master</code> to <code>master</code>. </p> </dd> <dt class="hdlist1"> @@ -825,10 +823,10 @@ <div class="sect1"> <h2 id="_notes">NOTES</h2> <div class="sectionbody"> -<div class="paragraph"><p>In the past, <tt>.git/HEAD</tt> was a symbolic link pointing at -<tt>refs/heads/master</tt>. When we wanted to switch to another branch, -we did <tt>ln -sf refs/heads/newbranch .git/HEAD</tt>, and when we wanted -to find out which branch we are on, we did <tt>readlink .git/HEAD</tt>. +<div class="paragraph"><p>In the past, <code>.git/HEAD</code> was a symbolic link pointing at +<code>refs/heads/master</code>. When we wanted to switch to another branch, +we did <code>ln -sf refs/heads/newbranch .git/HEAD</code>, and when we wanted +to find out which branch we are on, we did <code>readlink .git/HEAD</code>. But symbolic links are not entirely portable, so they are now deprecated and symbolic refs (as described above) are used by default.</p></div>
diff --git a/git-tools.html b/git-tools.html index 872cc04..ac70724 100644 --- a/git-tools.html +++ b/git-tools.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>A short Git tools survey</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -757,15 +755,15 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>Cogito is a version control system layered on top of the Git tree history +<pre><code>Cogito is a version control system layered on top of the Git tree history storage system. It aims at seamless user interface and ease of use, providing generally smoother user experience than the "raw" Core Git -itself and indeed many other version control systems.</tt></pre> +itself and indeed many other version control systems.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Cogito is no longer maintained as most of its functionality -is now in core Git.</tt></pre> +<pre><code>Cogito is no longer maintained as most of its functionality +is now in core Git.</code></pre> </div></div> </li> <li> @@ -774,9 +772,9 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>pg is a shell script wrapper around Git to help the user manage a set of +<pre><code>pg is a shell script wrapper around Git to help the user manage a set of patches to files. pg is somewhat like quilt or StGit, but it does have a -slightly different feature set.</tt></pre> +slightly different feature set.</code></pre> </div></div> </li> <li> @@ -785,9 +783,9 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>Stacked Git provides a quilt-like patch management functionality in the +<pre><code>Stacked Git provides a quilt-like patch management functionality in the Git environment. You can easily manage your patches in the scope of Git -until they get merged upstream.</tt></pre> +until they get merged upstream.</code></pre> </div></div> </li> </ul></div> @@ -803,7 +801,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>gitk is a simple Tk GUI for browsing history of Git repositories easily.</tt></pre> +<pre><code>gitk is a simple Tk GUI for browsing history of Git repositories easily.</code></pre> </div></div> </li> <li> @@ -812,7 +810,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>gitview is a GTK based repository browser for Git</tt></pre> +<pre><code>gitview is a GTK based repository browser for Git</code></pre> </div></div> </li> <li> @@ -821,7 +819,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>Gitweb provides full-fledged web interface for Git repositories.</tt></pre> +<pre><code>Gitweb provides full-fledged web interface for Git repositories.</code></pre> </div></div> </li> <li> @@ -830,11 +828,11 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>QGit is a git/StGit GUI viewer built on Qt/C++. QGit could be used +<pre><code>QGit is a git/StGit GUI viewer built on Qt/C++. QGit could be used to browse history and directory tree, view annotated files, commit changes cherry picking single files or applying patches. Currently it is the fastest and most feature rich among the Git -viewers and commit tools.</tt></pre> +viewers and commit tools.</code></pre> </div></div> </li> <li> @@ -843,10 +841,10 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>tig by Jonas Fonseca is a simple Git repository browser +<pre><code>tig by Jonas Fonseca is a simple Git repository browser written using ncurses. Basically, it just acts as a front-end for git-log and git-show/git-diff. Additionally, you can also -use it as a pager for Git commands.</tt></pre> +use it as a pager for Git commands.</code></pre> </div></div> </li> </ul></div> @@ -862,8 +860,8 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>git-svn is a simple conduit for changesets between a single Subversion -branch and Git.</tt></pre> +<pre><code>git-svn is a simple conduit for changesets between a single Subversion +branch and Git.</code></pre> </div></div> </li> <li> @@ -872,8 +870,8 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>These utilities convert patch series in a quilt repository and commit -series in Git back and forth.</tt></pre> +<pre><code>These utilities convert patch series in a quilt repository and commit +series in Git back and forth.</code></pre> </div></div> </li> <li> @@ -882,10 +880,10 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>hg-to-git converts a Mercurial repository into a Git one, and +<pre><code>hg-to-git converts a Mercurial repository into a Git one, and preserves the full branch history in the process. hg-to-git can also be used in an incremental way to keep the Git repository -in sync with the master Mercurial repository.</tt></pre> +in sync with the master Mercurial repository.</code></pre> </div></div> </li> </ul></div> @@ -901,10 +899,10 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>Commit Tool or (h)gct is a GUI enabled commit tool for Git and +<pre><code>Commit Tool or (h)gct is a GUI enabled commit tool for Git and Mercurial (hg). It allows the user to view diffs, select which files to committed (or ignored / reverted) write commit messages and -perform the commit itself.</tt></pre> +perform the commit itself.</code></pre> </div></div> </li> <li> @@ -913,9 +911,9 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>This is an Emacs interface for Git. The user interface is modelled on +<pre><code>This is an Emacs interface for Git. The user interface is modelled on pcl-cvs. It has been developed on Emacs 21 and will probably need some -tweaking to work on XEmacs.</tt></pre> +tweaking to work on XEmacs.</code></pre> </div></div> </li> </ul></div>
diff --git a/git-unpack-file.html b/git-unpack-file.html index 8caf1fb..71c829f 100644 --- a/git-unpack-file.html +++ b/git-unpack-file.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-unpack-file(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-unpack-objects.html b/git-unpack-objects.html index ac27634..ec1550c 100644 --- a/git-unpack-objects.html +++ b/git-unpack-objects.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-unpack-objects(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-update-ref.html b/git-update-ref.html index faefce4..8720945 100644 --- a/git-update-ref.html +++ b/git-update-ref.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-update-ref(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -759,12 +757,12 @@ <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"><p>Given two arguments, stores the <newvalue> in the <ref>, possibly -dereferencing the symbolic refs. E.g. <tt>git update-ref HEAD -<newvalue></tt> updates the current branch head to the new object.</p></div> +dereferencing the symbolic refs. E.g. <code>git update-ref HEAD +<newvalue></code> updates the current branch head to the new object.</p></div> <div class="paragraph"><p>Given three arguments, stores the <newvalue> in the <ref>, possibly dereferencing the symbolic refs, after verifying that the current value of the <ref> matches <oldvalue>. -E.g. <tt>git update-ref refs/heads/master <newvalue> <oldvalue></tt> +E.g. <code>git update-ref refs/heads/master <newvalue> <oldvalue></code> updates the master branch head to <newvalue> only if its current value is <oldvalue>. You can specify 40 "0" or an empty string as <oldvalue> to make sure that the ref you are creating does @@ -784,12 +782,12 @@ <div class="paragraph"><p>In general, using</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git update-ref HEAD "$head"</tt></pre> +<pre><code>git update-ref HEAD "$head"</code></pre> </div></div> <div class="paragraph"><p>should be a <em>lot</em> safer than doing</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>echo "$head" > "$GIT_DIR/HEAD"</tt></pre> +<pre><code>echo "$head" > "$GIT_DIR/HEAD"</code></pre> </div></div> <div class="paragraph"><p>both from a symlink following standpoint <strong>and</strong> an error checking standpoint. The "refs/" rule for symlinks means that symlinks @@ -797,31 +795,31 @@ for reading but not for writing (so we’ll never write through a ref symlink to some other tree, if you have copied a whole archive by creating a symlink tree).</p></div> -<div class="paragraph"><p>With <tt>-d</tt> flag, it deletes the named <ref> after verifying it +<div class="paragraph"><p>With <code>-d</code> flag, it deletes the named <ref> after verifying it still contains <oldvalue>.</p></div> -<div class="paragraph"><p>With <tt>--stdin</tt>, update-ref reads instructions from standard input and +<div class="paragraph"><p>With <code>--stdin</code>, update-ref reads instructions from standard input and performs all modifications together. Specify commands of the form:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>update SP <ref> SP <newvalue> [SP <oldvalue>] LF +<pre><code>update SP <ref> SP <newvalue> [SP <oldvalue>] LF create SP <ref> SP <newvalue> LF delete SP <ref> [SP <oldvalue>] LF verify SP <ref> [SP <oldvalue>] LF -option SP <opt> LF</tt></pre> +option SP <opt> LF</code></pre> </div></div> <div class="paragraph"><p>Quote fields containing whitespace as if they were strings in C source code; i.e., surrounded by double-quotes and with backslash escapes. Use 40 "0" characters or the empty string to specify a zero value. To specify a missing value, omit the value and its preceding SP entirely.</p></div> -<div class="paragraph"><p>Alternatively, use <tt>-z</tt> to specify in NUL-terminated format, without +<div class="paragraph"><p>Alternatively, use <code>-z</code> to specify in NUL-terminated format, without quoting:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>update SP <ref> NUL <newvalue> NUL [<oldvalue>] NUL +<pre><code>update SP <ref> NUL <newvalue> NUL [<oldvalue>] NUL create SP <ref> NUL <newvalue> NUL delete SP <ref> NUL [<oldvalue>] NUL verify SP <ref> NUL [<oldvalue>] NUL -option SP <opt> NUL</tt></pre> +option SP <opt> NUL</code></pre> </div></div> <div class="paragraph"><p>In this format, use 40 "0" to specify a zero value, and use the empty string to specify a missing value.</p></div> @@ -873,7 +871,7 @@ <dd> <p> Modify behavior of the next command naming a <ref>. - The only valid option is <tt>no-deref</tt> to avoid dereferencing + The only valid option is <code>no-deref</code> to avoid dereferencing a symbolic ref. </p> </dd> @@ -890,7 +888,7 @@ <div class="sectionbody"> <div class="paragraph"><p>If config parameter "core.logAllRefUpdates" is true and the ref is one under "refs/heads/", "refs/remotes/", "refs/notes/", or the symbolic ref HEAD; or -the file "$GIT_DIR/logs/<ref>" exists then <tt>git update-ref</tt> will append +the file "$GIT_DIR/logs/<ref>" exists then <code>git update-ref</code> will append a line to the log file "$GIT_DIR/logs/<ref>" (dereferencing all symbolic refs before creating the log name) describing the change in ref value. Log lines are formatted as:</p></div>
diff --git a/git-update-server-info.html b/git-update-server-info.html index 046b90d..262a10e 100644 --- a/git-update-server-info.html +++ b/git-update-server-info.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-update-server-info(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-upload-archive.html b/git-upload-archive.html index 8ff295b..db8e9b4 100644 --- a/git-upload-archive.html +++ b/git-upload-archive.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-upload-archive(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -769,38 +767,38 @@ <h2 id="_security">SECURITY</h2> <div class="sectionbody"> <div class="paragraph"><p>In order to protect the privacy of objects that have been removed from -history but may not yet have been pruned, <tt>git-upload-archive</tt> avoids +history but may not yet have been pruned, <code>git-upload-archive</code> avoids serving archives for commits and trees that are not reachable from the repository’s refs. However, because calculating object reachability is -computationally expensive, <tt>git-upload-archive</tt> implements a stricter +computationally expensive, <code>git-upload-archive</code> implements a stricter but easier-to-check set of rules:</p></div> <div class="olist arabic"><ol class="arabic"> <li> <p> Clients may request a commit or tree that is pointed to directly by - a ref. E.g., <tt>git archive --remote=origin v1.0</tt>. + a ref. E.g., <code>git archive --remote=origin v1.0</code>. </p> </li> <li> <p> Clients may request a sub-tree within a commit or tree using the - <tt>ref:path</tt> syntax. E.g., <tt>git archive --remote=origin v1.0:Documentation</tt>. + <code>ref:path</code> syntax. E.g., <code>git archive --remote=origin v1.0:Documentation</code>. </p> </li> <li> <p> Clients may <em>not</em> use other sha1 expressions, even if the end - result is reachable. E.g., neither a relative commit like <tt>master^</tt> - nor a literal sha1 like <tt>abcd1234</tt> is allowed, even if the result + result is reachable. E.g., neither a relative commit like <code>master^</code> + nor a literal sha1 like <code>abcd1234</code> is allowed, even if the result is reachable from the refs. </p> </li> </ol></div> <div class="paragraph"><p>Note that rule 3 disallows many cases that do not have any privacy implications. These rules are subject to change in future versions of -git, and the server accessed by <tt>git archive --remote</tt> may or may not +git, and the server accessed by <code>git archive --remote</code> may or may not follow these exact rules.</p></div> -<div class="paragraph"><p>If the config option <tt>uploadArchive.allowUnreachable</tt> is true, these +<div class="paragraph"><p>If the config option <code>uploadArchive.allowUnreachable</code> is true, these rules are ignored, and clients may use arbitrary sha1 expressions. This is useful if you do not care about the privacy of unreachable objects, or if your object database is already publicly available for
diff --git a/git-upload-pack.html b/git-upload-pack.html index 60d137a..fbba23f 100644 --- a/git-upload-pack.html +++ b/git-upload-pack.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-upload-pack(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-var.html b/git-var.html index 423993f..5736a0c 100644 --- a/git-var.html +++ b/git-var.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-var(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -773,7 +771,7 @@ Cause the logical variables to be listed. In addition, all the variables of the Git configuration file .git/config are listed as well. (However, the configuration variables listing functionality - is deprecated in favor of <tt>git config -l</tt>.) + is deprecated in favor of <code>git config -l</code>.) </p> </dd> </dl></div> @@ -784,8 +782,8 @@ <div class="sectionbody"> <div class="literalblock"> <div class="content"> -<pre><tt>$ git var GIT_AUTHOR_IDENT -Eric W. Biederman <ebiederm@lnxi.com> 1121223278 -0600</tt></pre> +<pre><code>$ git var GIT_AUTHOR_IDENT +Eric W. Biederman <ebiederm@lnxi.com> 1121223278 -0600</code></pre> </div></div> </div> </div> @@ -815,11 +813,11 @@ <dd> <p> Text editor for use by Git commands. The value is meant to be - interpreted by the shell when it is used. Examples: <tt>~/bin/vi</tt>, - <tt>$SOME_ENVIRONMENT_VARIABLE</tt>, <tt>"C:\Program Files\Vim\gvim.exe" - --nofork</tt>. The order of preference is the <tt>$GIT_EDITOR</tt> - environment variable, then <tt>core.editor</tt> configuration, then - <tt>$VISUAL</tt>, then <tt>$EDITOR</tt>, and then the default chosen at compile + interpreted by the shell when it is used. Examples: <code>~/bin/vi</code>, + <code>$SOME_ENVIRONMENT_VARIABLE</code>, <code>"C:\Program Files\Vim\gvim.exe" + --nofork</code>. The order of preference is the <code>$GIT_EDITOR</code> + environment variable, then <code>core.editor</code> configuration, then + <code>$VISUAL</code>, then <code>$EDITOR</code>, and then the default chosen at compile time, which is usually <em>vi</em>. </p> </dd> @@ -830,8 +828,8 @@ <p> Text viewer for use by Git commands (e.g., <em>less</em>). The value is meant to be interpreted by the shell. The order of preference - is the <tt>$GIT_PAGER</tt> environment variable, then <tt>core.pager</tt> - configuration, then <tt>$PAGER</tt>, and then the default chosen at + is the <code>$GIT_PAGER</code> environment variable, then <code>core.pager</code> + configuration, then <code>$PAGER</code>, and then the default chosen at compile time (usually <em>less</em>). </p> </dd>
diff --git a/git-verify-commit.html b/git-verify-commit.html index 9c7985b..3842295 100644 --- a/git-verify-commit.html +++ b/git-verify-commit.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-verify-commit(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-verify-pack.html b/git-verify-pack.html index bbc62a5..ee9c200 100644 --- a/git-verify-pack.html +++ b/git-verify-pack.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-verify-pack(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -796,7 +794,7 @@ <dd> <p> Do not verify the pack contents; only show the histogram of delta - chain length. With <tt>--verbose</tt>, list of objects is also shown. + chain length. With <code>--verbose</code>, list of objects is also shown. </p> </dd> <dt class="hdlist1"> @@ -816,12 +814,12 @@ <div class="paragraph"><p>When specifying the -v option the format used is:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>SHA-1 type size size-in-pack-file offset-in-packfile</tt></pre> +<pre><code>SHA-1 type size size-in-pack-file offset-in-packfile</code></pre> </div></div> <div class="paragraph"><p>for objects that are not deltified in the pack, and</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>SHA-1 type size size-in-packfile offset-in-packfile depth base-SHA-1</tt></pre> +<pre><code>SHA-1 type size size-in-packfile offset-in-packfile depth base-SHA-1</code></pre> </div></div> <div class="paragraph"><p>for objects that are deltified.</p></div> </div>
diff --git a/git-verify-tag.html b/git-verify-tag.html index f88fab3..e946168 100644 --- a/git-verify-tag.html +++ b/git-verify-tag.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-verify-tag(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/git-web--browse.html b/git-web--browse.html index 0f88c05..c7df489 100644 --- a/git-web--browse.html +++ b/git-web--browse.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-web--browse(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -935,11 +933,11 @@ the following:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> [web] +<pre><code> [web] browser = konq [browser "konq"] - cmd = A_PATH_TO/konqueror</tt></pre> + cmd = A_PATH_TO/konqueror</code></pre> </div></div> <div class="sect2"> <h3 id="_note_about_git_config_global">Note about git-config --global</h3> @@ -947,7 +945,7 @@ the <em>--global</em> flag, for example like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git config --global web.browser firefox</tt></pre> +<pre><code>$ git config --global web.browser firefox</code></pre> </div></div> <div class="paragraph"><p>as they are probably more user specific than repository specific. See <a href="git-config.html">git-config(1)</a> for more information about this.</p></div>
diff --git a/git-whatchanged.html b/git-whatchanged.html index 3b1cdaa..df08b12 100644 --- a/git-whatchanged.html +++ b/git-whatchanged.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-whatchanged(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -760,10 +758,10 @@ <div class="sectionbody"> <div class="paragraph"><p>Shows commit logs and diff output each commit introduces.</p></div> <div class="paragraph"><p>New users are encouraged to use <a href="git-log.html">git-log(1)</a> instead. The -<tt>whatchanged</tt> command is essentially the same as <a href="git-log.html">git-log(1)</a> +<code>whatchanged</code> command is essentially the same as <a href="git-log.html">git-log(1)</a> but defaults to show the raw format diff output and to skip merges.</p></div> <div class="paragraph"><p>The command is kept primarily for historical reasons; fingers of -many people who learned Git long before <tt>git log</tt> was invented by +many people who learned Git long before <code>git log</code> was invented by reading Linux kernel mailing list are trained to type it.</p></div> </div> </div> @@ -772,7 +770,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>git whatchanged -p v2.6.12.. include/scsi drivers/scsi</tt> +<code>git whatchanged -p v2.6.12.. include/scsi drivers/scsi</code> </dt> <dd> <p> @@ -781,7 +779,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>git whatchanged --since="2 weeks ago" -- gitk</tt> +<code>git whatchanged --since="2 weeks ago" -- gitk</code> </dt> <dd> <p>
diff --git a/git-write-tree.html b/git-write-tree.html index 69628e0..a64ec0c 100644 --- a/git-write-tree.html +++ b/git-write-tree.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>git-write-tree(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -788,7 +786,7 @@ <dd> <p> Writes a tree object that represents a subdirectory - <tt><prefix></tt>. This can be used to write the tree object + <code><prefix></code>. This can be used to write the tree object for a subproject that is in the named subdirectory. </p> </dd>
diff --git a/git.html b/git.html index ce9cbee..de83259 100644 --- a/git.html +++ b/git.html
@@ -2918,7 +2918,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-10-16 14:29:57 PDT +Last updated 2014-10-29 13:07:00 PDT </div> </div> </body>
diff --git a/gitattributes.html b/gitattributes.html index 997c6fb..dd8cc57 100644 --- a/gitattributes.html +++ b/gitattributes.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitattributes(5)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -755,12 +753,12 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>A <tt>gitattributes</tt> file is a simple text file that gives -<tt>attributes</tt> to pathnames.</p></div> -<div class="paragraph"><p>Each line in <tt>gitattributes</tt> file is of form:</p></div> +<div class="paragraph"><p>A <code>gitattributes</code> file is a simple text file that gives +<code>attributes</code> to pathnames.</p></div> +<div class="paragraph"><p>Each line in <code>gitattributes</code> file is of form:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>pattern attr1 attr2 ...</tt></pre> +<pre><code>pattern attr1 attr2 ...</code></pre> </div></div> <div class="paragraph"><p>That is, a pattern followed by an attributes list, separated by whitespaces. When the pattern matches the @@ -785,7 +783,7 @@ <p> The path has the attribute with special value "false"; this is specified by listing the name of the attribute - prefixed with a dash <tt>-</tt> in the attribute list. + prefixed with a dash <code>-</code> in the attribute list. </p> </dd> <dt class="hdlist1"> @@ -795,7 +793,7 @@ <p> The path has the attribute with specified string value; this is specified by listing the name of the attribute - followed by an equal sign <tt>=</tt> and its value in the + followed by an equal sign <code>=</code> and its value in the attribute list. </p> </dd> @@ -813,36 +811,36 @@ <div class="paragraph"><p>When more than one pattern matches the path, a later line overrides an earlier line. This overriding is done per attribute. The rules how the pattern matches paths are the -same as in <tt>.gitignore</tt> files; see <a href="gitignore.html">gitignore(5)</a>. -Unlike <tt>.gitignore</tt>, negative patterns are forbidden.</p></div> +same as in <code>.gitignore</code> files; see <a href="gitignore.html">gitignore(5)</a>. +Unlike <code>.gitignore</code>, negative patterns are forbidden.</p></div> <div class="paragraph"><p>When deciding what attributes are assigned to a path, Git -consults <tt>$GIT_DIR/info/attributes</tt> file (which has the highest -precedence), <tt>.gitattributes</tt> file in the same directory as the +consults <code>$GIT_DIR/info/attributes</code> file (which has the highest +precedence), <code>.gitattributes</code> file in the same directory as the path in question, and its parent directories up to the toplevel of the -work tree (the further the directory that contains <tt>.gitattributes</tt> +work tree (the further the directory that contains <code>.gitattributes</code> is from the path in question, the lower its precedence). Finally global and system-wide files are considered (they have the lowest precedence).</p></div> -<div class="paragraph"><p>When the <tt>.gitattributes</tt> file is missing from the work tree, the +<div class="paragraph"><p>When the <code>.gitattributes</code> file is missing from the work tree, the path in the index is used as a fall-back. During checkout process, -<tt>.gitattributes</tt> in the index is used and then the file in the +<code>.gitattributes</code> in the index is used and then the file in the working tree is used as a fall-back.</p></div> <div class="paragraph"><p>If you wish to affect only a single repository (i.e., to assign attributes to files that are particular to one user’s workflow for that repository), then -attributes should be placed in the <tt>$GIT_DIR/info/attributes</tt> file. +attributes should be placed in the <code>$GIT_DIR/info/attributes</code> file. Attributes which should be version-controlled and distributed to other repositories (i.e., attributes of interest to all users) should go into -<tt>.gitattributes</tt> files. Attributes that should affect all repositories +<code>.gitattributes</code> files. Attributes that should affect all repositories for a single user should be placed in a file specified by the -<tt>core.attributesfile</tt> configuration option (see <a href="git-config.html">git-config(1)</a>). +<code>core.attributesfile</code> configuration option (see <a href="git-config.html">git-config(1)</a>). Its default value is $XDG_CONFIG_HOME/git/attributes. If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/attributes is used instead. Attributes for all users on a system should be placed in the -<tt>$(prefix)/etc/gitattributes</tt> file.</p></div> +<code>$(prefix)/etc/gitattributes</code> file.</p></div> <div class="paragraph"><p>Sometimes you would need to override an setting of an attribute -for a path to <tt>Unspecified</tt> state. This can be done by listing -the name of the attribute prefixed with an exclamation point <tt>!</tt>.</p></div> +for a path to <code>Unspecified</code> state. This can be done by listing +the name of the attribute prefixed with an exclamation point <code>!</code>.</p></div> </div> </div> <div class="sect1"> @@ -859,19 +857,19 @@ Git stores the contents you prepare in the working tree in the repository upon <em>git add</em> and <em>git commit</em>.</p></div> <div class="sect3"> -<h4 id="_tt_text_tt"><tt>text</tt></h4> +<h4 id="_code_text_code"><code>text</code></h4> <div class="paragraph"><p>This attribute enables and controls end-of-line normalization. When a text file is normalized, its line endings are converted to LF in the repository. To control what line ending style is used in the working -directory, use the <tt>eol</tt> attribute for a single file and the -<tt>core.eol</tt> configuration variable for all text files.</p></div> +directory, use the <code>eol</code> attribute for a single file and the +<code>core.eol</code> configuration variable for all text files.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> Set </dt> <dd> <p> - Setting the <tt>text</tt> attribute on a path enables end-of-line + Setting the <code>text</code> attribute on a path enables end-of-line normalization and marks the path as a text file. End-of-line conversion takes place without guessing the content type. </p> @@ -881,7 +879,7 @@ </dt> <dd> <p> - Unsetting the <tt>text</tt> attribute on a path tells Git not to + Unsetting the <code>text</code> attribute on a path tells Git not to attempt any end-of-line conversion upon checkin or checkout. </p> </dd> @@ -890,7 +888,7 @@ </dt> <dd> <p> - When <tt>text</tt> is set to "auto", the path is marked for automatic + When <code>text</code> is set to "auto", the path is marked for automatic end-of-line normalization. If Git decides that the content is text, its line endings are normalized to LF on checkin. </p> @@ -900,20 +898,20 @@ </dt> <dd> <p> - If the <tt>text</tt> attribute is unspecified, Git uses the - <tt>core.autocrlf</tt> configuration variable to determine if the + If the <code>text</code> attribute is unspecified, Git uses the + <code>core.autocrlf</code> configuration variable to determine if the file should be converted. </p> </dd> </dl></div> -<div class="paragraph"><p>Any other value causes Git to act as if <tt>text</tt> has been left +<div class="paragraph"><p>Any other value causes Git to act as if <code>text</code> has been left unspecified.</p></div> </div> <div class="sect3"> -<h4 id="_tt_eol_tt"><tt>eol</tt></h4> +<h4 id="_code_eol_code"><code>eol</code></h4> <div class="paragraph"><p>This attribute sets a specific line-ending style to be used in the working directory. It enables end-of-line normalization without any -content checks, effectively setting the <tt>text</tt> attribute.</p></div> +content checks, effectively setting the <code>text</code> attribute.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> Set to string value "crlf" @@ -938,14 +936,14 @@ </dl></div> </div> <div class="sect3"> -<h4 id="_backwards_compatibility_with_tt_crlf_tt_attribute">Backwards compatibility with <tt>crlf</tt> attribute</h4> -<div class="paragraph"><p>For backwards compatibility, the <tt>crlf</tt> attribute is interpreted as +<h4 id="_backwards_compatibility_with_code_crlf_code_attribute">Backwards compatibility with <code>crlf</code> attribute</h4> +<div class="paragraph"><p>For backwards compatibility, the <code>crlf</code> attribute is interpreted as follows:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>crlf text +<pre><code>crlf text -crlf -text -crlf=input eol=lf</tt></pre> +crlf=input eol=lf</code></pre> </div></div> </div> <div class="sect3"> @@ -959,10 +957,10 @@ regardless of their content.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>*.txt text +<pre><code>*.txt text *.vcproj eol=crlf *.sh eol=lf -*.jpg -text</tt></pre> +*.jpg -text</code></pre> </div></div> <div class="paragraph"><p>Other source code management systems normalize all text files in their repositories, and there are two ways to enable similar automatic @@ -972,8 +970,8 @@ config variable "core.autocrlf" without changing any attributes.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[core] - autocrlf = true</tt></pre> +<pre><code>[core] + autocrlf = true</code></pre> </div></div> <div class="paragraph"><p>This does not force normalization of all text files, but does ensure that text files that you introduce to the repository have their line @@ -981,24 +979,24 @@ already normalized in the repository stay normalized.</p></div> <div class="paragraph"><p>If you want to interoperate with a source code management system that enforces end-of-line normalization, or you simply want all text files -in your repository to be normalized, you should instead set the <tt>text</tt> +in your repository to be normalized, you should instead set the <code>text</code> attribute to "auto" for <em>all</em> files.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>* text=auto</tt></pre> +<pre><code>* text=auto</code></pre> </div></div> <div class="paragraph"><p>This ensures that all files that Git considers to be text will have -normalized (LF) line endings in the repository. The <tt>core.eol</tt> +normalized (LF) line endings in the repository. The <code>core.eol</code> configuration variable controls which line endings Git will use for normalized files in your working directory; the default is to use the -native line ending for your platform, or CRLF if <tt>core.autocrlf</tt> is +native line ending for your platform, or CRLF if <code>core.autocrlf</code> is set.</p></div> <div class="admonitionblock"> <table><tr> <td class="icon"> <div class="title">Note</div> </td> -<td class="content">When <tt>text=auto</tt> normalization is enabled in an existing +<td class="content">When <code>text=auto</code> normalization is enabled in an existing repository, any text files containing CRLFs should be normalized. If they are not they will be normalized the next time someone tries to change them, causing unfortunate misattribution. From a clean working @@ -1007,29 +1005,29 @@ </div> <div class="listingblock"> <div class="content"> -<pre><tt>$ echo "* text=auto" >>.gitattributes +<pre><code>$ echo "* text=auto" >>.gitattributes $ rm .git/index # Remove the index to force Git to $ git reset # re-scan the working directory $ git status # Show files that will be normalized $ git add -u $ git add .gitattributes -$ git commit -m "Introduce end-of-line normalization"</tt></pre> +$ git commit -m "Introduce end-of-line normalization"</code></pre> </div></div> <div class="paragraph"><p>If any files that should not be normalized show up in <em>git status</em>, -unset their <tt>text</tt> attribute before running <em>git add -u</em>.</p></div> +unset their <code>text</code> attribute before running <em>git add -u</em>.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>manual.pdf -text</tt></pre> +<pre><code>manual.pdf -text</code></pre> </div></div> <div class="paragraph"><p>Conversely, text files that Git does not detect can have normalization enabled manually.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>weirdchars.txt text</tt></pre> +<pre><code>weirdchars.txt text</code></pre> </div></div> -<div class="paragraph"><p>If <tt>core.safecrlf</tt> is set to "true" or "warn", Git verifies if +<div class="paragraph"><p>If <code>core.safecrlf</code> is set to "true" or "warn", Git verifies if the conversion is reversible for the current setting of -<tt>core.autocrlf</tt>. For "true", Git rejects irreversible +<code>core.autocrlf</code>. For "true", Git rejects irreversible conversions; for "warn", Git only prints a warning but accepts an irreversible conversion. The safety triggers to prevent such a conversion done to the files in the work tree, but there are a @@ -1059,24 +1057,24 @@ </ul></div> </div> <div class="sect3"> -<h4 id="_tt_ident_tt"><tt>ident</tt></h4> -<div class="paragraph"><p>When the attribute <tt>ident</tt> is set for a path, Git replaces -<tt>$Id$</tt> in the blob object with <tt>$Id:</tt>, followed by the +<h4 id="_code_ident_code"><code>ident</code></h4> +<div class="paragraph"><p>When the attribute <code>ident</code> is set for a path, Git replaces +<code>$Id$</code> in the blob object with <code>$Id:</code>, followed by the 40-character hexadecimal blob object name, followed by a dollar -sign <tt>$</tt> upon checkout. Any byte sequence that begins with -<tt>$Id:</tt> and ends with <tt>$</tt> in the worktree file is replaced -with <tt>$Id$</tt> upon check-in.</p></div> +sign <code>$</code> upon checkout. Any byte sequence that begins with +<code>$Id:</code> and ends with <code>$</code> in the worktree file is replaced +with <code>$Id$</code> upon check-in.</p></div> </div> <div class="sect3"> -<h4 id="_tt_filter_tt"><tt>filter</tt></h4> -<div class="paragraph"><p>A <tt>filter</tt> attribute can be set to a string value that names a +<h4 id="_code_filter_code"><code>filter</code></h4> +<div class="paragraph"><p>A <code>filter</code> attribute can be set to a string value that names a filter driver specified in the configuration.</p></div> -<div class="paragraph"><p>A filter driver consists of a <tt>clean</tt> command and a <tt>smudge</tt> +<div class="paragraph"><p>A filter driver consists of a <code>clean</code> command and a <code>smudge</code> command, either of which can be left unspecified. Upon -checkout, when the <tt>smudge</tt> command is specified, the command is +checkout, when the <code>smudge</code> command is specified, the command is fed the blob object from its standard input, and its standard output is used to update the worktree file. Similarly, the -<tt>clean</tt> command is used to convert the contents of worktree file +<code>clean</code> command is used to convert the contents of worktree file upon checkin.</p></div> <div class="paragraph"><p>One use of the content filtering is to massage the content into a shape that is more convenient for the platform, filesystem, and the user to use. @@ -1095,12 +1093,12 @@ a non-zero status, is not an error but makes the filter a no-op passthru.</p></div> <div class="paragraph"><p>You can declare that a filter turns a content that by itself is unusable into a usable content by setting the filter.<driver>.required configuration -variable to <tt>true</tt>.</p></div> -<div class="paragraph"><p>For example, in .gitattributes, you would assign the <tt>filter</tt> +variable to <code>true</code>.</p></div> +<div class="paragraph"><p>For example, in .gitattributes, you would assign the <code>filter</code> attribute for paths.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>*.c filter=indent</tt></pre> +<pre><code>*.c filter=indent</code></pre> </div></div> <div class="paragraph"><p>Then you would define a "filter.indent.clean" and "filter.indent.smudge" configuration in your .git/config to specify a pair of commands to @@ -1109,13 +1107,13 @@ command is "cat").</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[filter "indent"] +<pre><code>[filter "indent"] clean = indent - smudge = cat</tt></pre> + smudge = cat</code></pre> </div></div> -<div class="paragraph"><p>For best results, <tt>clean</tt> should not alter its output further if it is +<div class="paragraph"><p>For best results, <code>clean</code> should not alter its output further if it is run twice ("clean→clean" should be equivalent to "clean"), and -multiple <tt>smudge</tt> commands should not alter <tt>clean</tt>'s output +multiple <code>smudge</code> commands should not alter <code>clean</code>'s output ("smudge→smudge→clean" should be equivalent to "clean"). See the section on merging below.</p></div> <div class="paragraph"><p>The "indent" filter is well-behaved in this regard: it will not modify @@ -1123,33 +1121,33 @@ smudge filter means that the clean filter <em>must</em> accept its own output without modifying it.</p></div> <div class="paragraph"><p>If a filter <em>must</em> succeed in order to make the stored contents usable, -you can declare that the filter is <tt>required</tt>, in the configuration:</p></div> +you can declare that the filter is <code>required</code>, in the configuration:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[filter "crypt"] +<pre><code>[filter "crypt"] clean = openssl enc ... smudge = openssl enc -d ... - required</tt></pre> + required</code></pre> </div></div> <div class="paragraph"><p>Sequence "%f" on the filter command line is replaced with the name of the file the filter is working on. A filter might use this in keyword substitution. For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[filter "p4"] +<pre><code>[filter "p4"] clean = git-p4-filter --clean %f - smudge = git-p4-filter --smudge %f</tt></pre> + smudge = git-p4-filter --smudge %f</code></pre> </div></div> </div> <div class="sect3"> <h4 id="_interaction_between_checkin_checkout_attributes">Interaction between checkin/checkout attributes</h4> <div class="paragraph"><p>In the check-in codepath, the worktree file is first converted -with <tt>filter</tt> driver (if specified and corresponding driver -defined), then the result is processed with <tt>ident</tt> (if -specified), and then finally with <tt>text</tt> (again, if specified +with <code>filter</code> driver (if specified and corresponding driver +defined), then the result is processed with <code>ident</code> (if +specified), and then finally with <code>text</code> (again, if specified and applicable).</p></div> <div class="paragraph"><p>In the check-out codepath, the blob content is first converted -with <tt>text</tt>, and then <tt>ident</tt> and fed to <tt>filter</tt>.</p></div> +with <code>text</code>, and then <code>ident</code> and fed to <code>filter</code>.</p></div> </div> <div class="sect3"> <h4 id="_merging_branches_with_differing_checkin_checkout_attributes">Merging branches with differing checkin/checkout attributes</h4> @@ -1160,7 +1158,7 @@ conflicts.</p></div> <div class="paragraph"><p>To prevent these unnecessary merge conflicts, Git can be told to run a virtual check-out and check-in of all three stages of a file when -resolving a three-way merge by setting the <tt>merge.renormalize</tt> +resolving a three-way merge by setting the <code>merge.renormalize</code> configuration variable. This prevents changes caused by check-in conversion from causing spurious merge conflicts when a converted file is merged with an unconverted file.</p></div> @@ -1174,11 +1172,11 @@ <div class="sect2"> <h3 id="_generating_diff_text">Generating diff text</h3> <div class="sect3"> -<h4 id="_tt_diff_tt"><tt>diff</tt></h4> -<div class="paragraph"><p>The attribute <tt>diff</tt> affects how Git generates diffs for particular +<h4 id="_code_diff_code"><code>diff</code></h4> +<div class="paragraph"><p>The attribute <code>diff</code> affects how Git generates diffs for particular files. It can tell Git whether to generate a textual patch for the path or to treat the path as a binary file. It can also affect what line is -shown on the hunk header <tt>@@ -k,l +n,m @@</tt> line, tell Git to use an +shown on the hunk header <code>@@ -k,l +n,m @@</code> line, tell Git to use an external command to generate the diff, or ask Git to convert binary files to a text format before generating the diff.</p></div> <div class="dlist"><dl> @@ -1187,7 +1185,7 @@ </dt> <dd> <p> - A path to which the <tt>diff</tt> attribute is set is treated + A path to which the <code>diff</code> attribute is set is treated as text, even when they contain byte values that normally never appear in text files, such as NUL. </p> @@ -1197,8 +1195,8 @@ </dt> <dd> <p> - A path to which the <tt>diff</tt> attribute is unset will - generate <tt>Binary files differ</tt> (or a binary patch, if + A path to which the <code>diff</code> attribute is unset will + generate <code>Binary files differ</code> (or a binary patch, if binary patches are enabled). </p> </dd> @@ -1207,10 +1205,10 @@ </dt> <dd> <p> - A path to which the <tt>diff</tt> attribute is unspecified + A path to which the <code>diff</code> attribute is unspecified first gets its contents inspected, and if it looks like text and is smaller than core.bigFileThreshold, it is treated - as text. Otherwise it would generate <tt>Binary files differ</tt>. + as text. Otherwise it would generate <code>Binary files differ</code>. </p> </dd> <dt class="hdlist1"> @@ -1229,20 +1227,20 @@ </div> <div class="sect3"> <h4 id="_defining_an_external_diff_driver">Defining an external diff driver</h4> -<div class="paragraph"><p>The definition of a diff driver is done in <tt>gitconfig</tt>, not -<tt>gitattributes</tt> file, so strictly speaking this manual page is a +<div class="paragraph"><p>The definition of a diff driver is done in <code>gitconfig</code>, not +<code>gitattributes</code> file, so strictly speaking this manual page is a wrong place to talk about it. However…</p></div> -<div class="paragraph"><p>To define an external diff driver <tt>jcdiff</tt>, add a section to your -<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file) like this:</p></div> +<div class="paragraph"><p>To define an external diff driver <code>jcdiff</code>, add a section to your +<code>$GIT_DIR/config</code> file (or <code>$HOME/.gitconfig</code> file) like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[diff "jcdiff"] - command = j-c-diff</tt></pre> +<pre><code>[diff "jcdiff"] + command = j-c-diff</code></pre> </div></div> -<div class="paragraph"><p>When Git needs to show you a diff for the path with <tt>diff</tt> -attribute set to <tt>jcdiff</tt>, it calls the command you specified -with the above configuration, i.e. <tt>j-c-diff</tt>, with 7 -parameters, just like <tt>GIT_EXTERNAL_DIFF</tt> program is called. +<div class="paragraph"><p>When Git needs to show you a diff for the path with <code>diff</code> +attribute set to <code>jcdiff</code>, it calls the command you specified +with the above configuration, i.e. <code>j-c-diff</code>, with 7 +parameters, just like <code>GIT_EXTERNAL_DIFF</code> program is called. See <a href="git.html">git(1)</a> for details.</p></div> </div> <div class="sect3"> @@ -1251,129 +1249,129 @@ is prefixed with a line of the form:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>@@ -k,l +n,m @@ TEXT</tt></pre> +<pre><code>@@ -k,l +n,m @@ TEXT</code></pre> </div></div> <div class="paragraph"><p>This is called a <em>hunk header</em>. The "TEXT" portion is by default a line that begins with an alphabet, an underscore or a dollar sign; this matches what GNU <em>diff -p</em> output uses. This default selection however is not suited for some contents, and you can use a customized pattern to make a selection.</p></div> -<div class="paragraph"><p>First, in .gitattributes, you would assign the <tt>diff</tt> attribute +<div class="paragraph"><p>First, in .gitattributes, you would assign the <code>diff</code> attribute for paths.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>*.tex diff=tex</tt></pre> +<pre><code>*.tex diff=tex</code></pre> </div></div> <div class="paragraph"><p>Then, you would define a "diff.tex.xfuncname" configuration to specify a regular expression that matches a line that you would want to appear as the hunk header "TEXT". Add a section to your -<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file) like this:</p></div> +<code>$GIT_DIR/config</code> file (or <code>$HOME/.gitconfig</code> file) like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[diff "tex"] - xfuncname = "^(\\\\(sub)*section\\{.*)$"</tt></pre> +<pre><code>[diff "tex"] + xfuncname = "^(\\\\(sub)*section\\{.*)$"</code></pre> </div></div> <div class="paragraph"><p>Note. A single level of backslashes are eaten by the configuration file parser, so you would need to double the backslashes; the pattern above picks a line that begins with a -backslash, and zero or more occurrences of <tt>sub</tt> followed by -<tt>section</tt> followed by open brace, to the end of line.</p></div> -<div class="paragraph"><p>There are a few built-in patterns to make this easier, and <tt>tex</tt> +backslash, and zero or more occurrences of <code>sub</code> followed by +<code>section</code> followed by open brace, to the end of line.</p></div> +<div class="paragraph"><p>There are a few built-in patterns to make this easier, and <code>tex</code> is one of them, so you do not have to write the above in your configuration file (you still need to enable this with the -attribute mechanism, via <tt>.gitattributes</tt>). The following built in +attribute mechanism, via <code>.gitattributes</code>). The following built in patterns are available:</p></div> <div class="ulist"><ul> <li> <p> -<tt>ada</tt> suitable for source code in the Ada language. +<code>ada</code> suitable for source code in the Ada language. </p> </li> <li> <p> -<tt>bibtex</tt> suitable for files with BibTeX coded references. +<code>bibtex</code> suitable for files with BibTeX coded references. </p> </li> <li> <p> -<tt>cpp</tt> suitable for source code in the C and C++ languages. +<code>cpp</code> suitable for source code in the C and C++ languages. </p> </li> <li> <p> -<tt>csharp</tt> suitable for source code in the C# language. +<code>csharp</code> suitable for source code in the C# language. </p> </li> <li> <p> -<tt>fortran</tt> suitable for source code in the Fortran language. +<code>fortran</code> suitable for source code in the Fortran language. </p> </li> <li> <p> -<tt>html</tt> suitable for HTML/XHTML documents. +<code>html</code> suitable for HTML/XHTML documents. </p> </li> <li> <p> -<tt>java</tt> suitable for source code in the Java language. +<code>java</code> suitable for source code in the Java language. </p> </li> <li> <p> -<tt>matlab</tt> suitable for source code in the MATLAB language. +<code>matlab</code> suitable for source code in the MATLAB language. </p> </li> <li> <p> -<tt>objc</tt> suitable for source code in the Objective-C language. +<code>objc</code> suitable for source code in the Objective-C language. </p> </li> <li> <p> -<tt>pascal</tt> suitable for source code in the Pascal/Delphi language. +<code>pascal</code> suitable for source code in the Pascal/Delphi language. </p> </li> <li> <p> -<tt>perl</tt> suitable for source code in the Perl language. +<code>perl</code> suitable for source code in the Perl language. </p> </li> <li> <p> -<tt>php</tt> suitable for source code in the PHP language. +<code>php</code> suitable for source code in the PHP language. </p> </li> <li> <p> -<tt>python</tt> suitable for source code in the Python language. +<code>python</code> suitable for source code in the Python language. </p> </li> <li> <p> -<tt>ruby</tt> suitable for source code in the Ruby language. +<code>ruby</code> suitable for source code in the Ruby language. </p> </li> <li> <p> -<tt>tex</tt> suitable for source code for LaTeX documents. +<code>tex</code> suitable for source code for LaTeX documents. </p> </li> </ul></div> </div> <div class="sect3"> <h4 id="_customizing_word_diff">Customizing word diff</h4> -<div class="paragraph"><p>You can customize the rules that <tt>git diff --word-diff</tt> uses to +<div class="paragraph"><p>You can customize the rules that <code>git diff --word-diff</code> uses to split words in a line, by specifying an appropriate regular expression in the "diff.*.wordRegex" configuration variable. For example, in TeX a backslash followed by a sequence of letters forms a command, but several such commands can be run together without intervening whitespace. To separate them, use a regular expression in your -<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file) like this:</p></div> +<code>$GIT_DIR/config</code> file (or <code>$HOME/.gitconfig</code> file) like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[diff "tex"] - wordRegex = "\\\\[a-zA-Z]+|[{}]|\\\\.|[^\\{}[:space:]]+"</tt></pre> +<pre><code>[diff "tex"] + wordRegex = "\\\\[a-zA-Z]+|[{}]|\\\\.|[^\\{}[:space:]]+"</code></pre> </div></div> <div class="paragraph"><p>A built-in pattern is provided for all languages listed in the previous section.</p></div> @@ -1386,18 +1384,18 @@ the diff of the text shown. Even though this conversion loses some information, the resulting diff is useful for human viewing (but cannot be applied directly).</p></div> -<div class="paragraph"><p>The <tt>textconv</tt> config option is used to define a program for +<div class="paragraph"><p>The <code>textconv</code> config option is used to define a program for performing such a conversion. The program should take a single argument, the name of a file to convert, and produce the resulting text on stdout.</p></div> <div class="paragraph"><p>For example, to show the diff of the exif information of a file instead of the binary information (assuming you have the exif tool installed), add the following section to your -<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file):</p></div> +<code>$GIT_DIR/config</code> file (or <code>$HOME/.gitconfig</code> file):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[diff "jpg"] - textconv = exif</tt></pre> +<pre><code>[diff "jpg"] + textconv = exif</code></pre> </div></div> <div class="admonitionblock"> <table><tr> @@ -1408,9 +1406,9 @@ in this example, we lose the actual image contents and focus just on the text data. This means that diffs generated by textconv are <em>not</em> suitable for applying. For this reason, -only <tt>git diff</tt> and the <tt>git log</tt> family of commands (i.e., -log, whatchanged, show) will perform text conversion. <tt>git -format-patch</tt> will never generate this output. If you want to +only <code>git diff</code> and the <code>git log</code> family of commands (i.e., +log, whatchanged, show) will perform text conversion. <code>git +format-patch</code> will never generate this output. If you want to send somebody a text-converted diff of a binary file (e.g., because it quickly conveys the changes you have made), you should generate it separately and send it as a comment <em>in @@ -1418,15 +1416,15 @@ </tr></table> </div> <div class="paragraph"><p>Because text conversion can be slow, especially when doing a -large number of them with <tt>git log -p</tt>, Git provides a mechanism +large number of them with <code>git log -p</code>, Git provides a mechanism to cache the output and use it in future diffs. To enable caching, set the "cachetextconv" variable in your diff driver’s config. For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[diff "jpg"] +<pre><code>[diff "jpg"] textconv = exif - cachetextconv = true</tt></pre> + cachetextconv = true</code></pre> </div></div> <div class="paragraph"><p>This will cache the result of running "exif" on each blob indefinitely. If you change the textconv config variable for a @@ -1434,7 +1432,7 @@ and re-run the textconv filter. If you want to invalidate the cache manually (e.g., because your version of "exif" was updated and now produces better output), you can remove the cache -manually with <tt>git update-ref -d refs/notes/textconv/jpg</tt> (where +manually with <code>git update-ref -d refs/notes/textconv/jpg</code> (where "jpg" is the name of the diff driver, as in the example above).</p></div> </div> <div class="sect3"> @@ -1470,7 +1468,7 @@ <li> <p> Caching. Textconv caching can speed up repeated diffs, such as those - you might trigger by running <tt>git log -p</tt>. + you might trigger by running <code>git log -p</code>. </p> </li> </ol></div> @@ -1485,33 +1483,33 @@ many postscript files contain only ascii characters, but produce noisy and meaningless diffs.</p></div> <div class="paragraph"><p>The simplest way to mark a file as binary is to unset the diff -attribute in the <tt>.gitattributes</tt> file:</p></div> +attribute in the <code>.gitattributes</code> file:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>*.ps -diff</tt></pre> +<pre><code>*.ps -diff</code></pre> </div></div> -<div class="paragraph"><p>This will cause Git to generate <tt>Binary files differ</tt> (or a binary +<div class="paragraph"><p>This will cause Git to generate <code>Binary files differ</code> (or a binary patch, if binary patches are enabled) instead of a regular diff.</p></div> <div class="paragraph"><p>However, one may also want to specify other diff driver attributes. For -example, you might want to use <tt>textconv</tt> to convert postscript files to +example, you might want to use <code>textconv</code> to convert postscript files to an ascii representation for human viewing, but otherwise treat them as -binary files. You cannot specify both <tt>-diff</tt> and <tt>diff=ps</tt> attributes. -The solution is to use the <tt>diff.*.binary</tt> config option:</p></div> +binary files. You cannot specify both <code>-diff</code> and <code>diff=ps</code> attributes. +The solution is to use the <code>diff.*.binary</code> config option:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[diff "ps"] +<pre><code>[diff "ps"] textconv = ps2ascii - binary = true</tt></pre> + binary = true</code></pre> </div></div> </div> </div> <div class="sect2"> <h3 id="_performing_a_three_way_merge">Performing a three-way merge</h3> <div class="sect3"> -<h4 id="_tt_merge_tt"><tt>merge</tt></h4> -<div class="paragraph"><p>The attribute <tt>merge</tt> affects how three versions of a file are -merged when a file-level merge is necessary during <tt>git merge</tt>, -and other commands such as <tt>git revert</tt> and <tt>git cherry-pick</tt>.</p></div> +<h4 id="_code_merge_code"><code>merge</code></h4> +<div class="paragraph"><p>The attribute <code>merge</code> affects how three versions of a file are +merged when a file-level merge is necessary during <code>git merge</code>, +and other commands such as <code>git revert</code> and <code>git cherry-pick</code>.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> Set @@ -1519,7 +1517,7 @@ <dd> <p> Built-in 3-way merge driver is used to merge the - contents in a way similar to <em>merge</em> command of <tt>RCS</tt> + contents in a way similar to <em>merge</em> command of <code>RCS</code> suite. This is suitable for ordinary text files. </p> </dd> @@ -1540,10 +1538,10 @@ <dd> <p> By default, this uses the same built-in 3-way merge - driver as is the case when the <tt>merge</tt> attribute is set. - However, the <tt>merge.default</tt> configuration variable can name + driver as is the case when the <code>merge</code> attribute is set. + However, the <code>merge.default</code> configuration variable can name different merge driver to be used with paths for which the - <tt>merge</tt> attribute is unspecified. + <code>merge</code> attribute is unspecified. </p> </dd> <dt class="hdlist1"> @@ -1563,7 +1561,7 @@ <div class="sect3"> <h4 id="_built_in_merge_drivers">Built-in merge drivers</h4> <div class="paragraph"><p>There are a few built-in low-level merge drivers defined that -can be asked for via the <tt>merge</tt> attribute.</p></div> +can be asked for via the <code>merge</code> attribute.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> text @@ -1571,10 +1569,10 @@ <dd> <p> Usual 3-way file level merge for text files. Conflicted - regions are marked with conflict markers <tt><<<<<<<</tt>, - <tt>=======</tt> and <tt>>>>>>>></tt>. The version from your branch - appears before the <tt>=======</tt> marker, and the version - from the merged branch appears after the <tt>=======</tt> + regions are marked with conflict markers <code><<<<<<<</code>, + <code>=======</code> and <code>>>>>>>></code>. The version from your branch + appears before the <code>=======</code> marker, and the version + from the merged branch appears after the <code>=======</code> marker. </p> </dd> @@ -1605,57 +1603,57 @@ </div> <div class="sect3"> <h4 id="_defining_a_custom_merge_driver">Defining a custom merge driver</h4> -<div class="paragraph"><p>The definition of a merge driver is done in the <tt>.git/config</tt> -file, not in the <tt>gitattributes</tt> file, so strictly speaking this +<div class="paragraph"><p>The definition of a merge driver is done in the <code>.git/config</code> +file, not in the <code>gitattributes</code> file, so strictly speaking this manual page is a wrong place to talk about it. However…</p></div> -<div class="paragraph"><p>To define a custom merge driver <tt>filfre</tt>, add a section to your -<tt>$GIT_DIR/config</tt> file (or <tt>$HOME/.gitconfig</tt> file) like this:</p></div> +<div class="paragraph"><p>To define a custom merge driver <code>filfre</code>, add a section to your +<code>$GIT_DIR/config</code> file (or <code>$HOME/.gitconfig</code> file) like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[merge "filfre"] +<pre><code>[merge "filfre"] name = feel-free merge driver driver = filfre %O %A %B - recursive = binary</tt></pre> + recursive = binary</code></pre> </div></div> -<div class="paragraph"><p>The <tt>merge.*.name</tt> variable gives the driver a human-readable +<div class="paragraph"><p>The <code>merge.*.name</code> variable gives the driver a human-readable name.</p></div> <div class="paragraph"><p>The ‘merge.*.driver` variable’s value is used to construct a -command to run to merge ancestor’s version (<tt>%O</tt>), current -version (<tt>%A</tt>) and the other branches’ version (<tt>%B</tt>). These +command to run to merge ancestor’s version (<code>%O</code>), current +version (<code>%A</code>) and the other branches’ version (<code>%B</code>). These three tokens are replaced with the names of temporary files that hold the contents of these versions when the command line is built. Additionally, %L will be replaced with the conflict marker size (see below).</p></div> <div class="paragraph"><p>The merge driver is expected to leave the result of the merge in -the file named with <tt>%A</tt> by overwriting it, and exit with zero +the file named with <code>%A</code> by overwriting it, and exit with zero status if it managed to merge them cleanly, or non-zero if there were conflicts.</p></div> -<div class="paragraph"><p>The <tt>merge.*.recursive</tt> variable specifies what other merge +<div class="paragraph"><p>The <code>merge.*.recursive</code> variable specifies what other merge driver to use when the merge driver is called for an internal merge between common ancestors, when there are more than one. When left unspecified, the driver itself is used for both internal merge and the final merge.</p></div> </div> <div class="sect3"> -<h4 id="_tt_conflict_marker_size_tt"><tt>conflict-marker-size</tt></h4> +<h4 id="_code_conflict_marker_size_code"><code>conflict-marker-size</code></h4> <div class="paragraph"><p>This attribute controls the length of conflict markers left in the work tree file during a conflicted merge. Only setting to the value to a positive integer has any meaningful effect.</p></div> -<div class="paragraph"><p>For example, this line in <tt>.gitattributes</tt> can be used to tell the merge +<div class="paragraph"><p>For example, this line in <code>.gitattributes</code> can be used to tell the merge machinery to leave much longer (instead of the usual 7-character-long) -conflict markers when merging the file <tt>Documentation/git-merge.txt</tt> +conflict markers when merging the file <code>Documentation/git-merge.txt</code> results in a conflict.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Documentation/git-merge.txt conflict-marker-size=32</tt></pre> +<pre><code>Documentation/git-merge.txt conflict-marker-size=32</code></pre> </div></div> </div> </div> <div class="sect2"> <h3 id="_checking_whitespace_errors">Checking whitespace errors</h3> <div class="sect3"> -<h4 id="_tt_whitespace_tt"><tt>whitespace</tt></h4> -<div class="paragraph"><p>The <tt>core.whitespace</tt> configuration variable allows you to define what +<h4 id="_code_whitespace_code"><code>whitespace</code></h4> +<div class="paragraph"><p>The <code>core.whitespace</code> configuration variable allows you to define what <em>diff</em> and <em>apply</em> should consider whitespace errors for all paths in the project (See <a href="git-config.html">git-config(1)</a>). This attribute gives you finer control per path.</p></div> @@ -1666,7 +1664,7 @@ <dd> <p> Notice all types of potential whitespace errors known to Git. - The tab width is taken from the value of the <tt>core.whitespace</tt> + The tab width is taken from the value of the <code>core.whitespace</code> configuration variable. </p> </dd> @@ -1683,7 +1681,7 @@ </dt> <dd> <p> - Use the value of the <tt>core.whitespace</tt> configuration variable to + Use the value of the <code>core.whitespace</code> configuration variable to decide what to notice as error. </p> </dd> @@ -1693,7 +1691,7 @@ <dd> <p> Specify a comma separate list of common whitespace problems to - notice in the same format as the <tt>core.whitespace</tt> configuration + notice in the same format as the <code>core.whitespace</code> configuration variable. </p> </dd> @@ -1703,42 +1701,42 @@ <div class="sect2"> <h3 id="_creating_an_archive">Creating an archive</h3> <div class="sect3"> -<h4 id="_tt_export_ignore_tt"><tt>export-ignore</tt></h4> -<div class="paragraph"><p>Files and directories with the attribute <tt>export-ignore</tt> won’t be added to +<h4 id="_code_export_ignore_code"><code>export-ignore</code></h4> +<div class="paragraph"><p>Files and directories with the attribute <code>export-ignore</code> won’t be added to archive files.</p></div> </div> <div class="sect3"> -<h4 id="_tt_export_subst_tt"><tt>export-subst</tt></h4> -<div class="paragraph"><p>If the attribute <tt>export-subst</tt> is set for a file then Git will expand +<h4 id="_code_export_subst_code"><code>export-subst</code></h4> +<div class="paragraph"><p>If the attribute <code>export-subst</code> is set for a file then Git will expand several placeholders when adding this file to an archive. The expansion depends on the availability of a commit ID, i.e., if <a href="git-archive.html">git-archive(1)</a> has been given a tree instead of a commit or a tag then no replacement will be done. The placeholders are the same -as those for the option <tt>--pretty=format:</tt> of <a href="git-log.html">git-log(1)</a>, -except that they need to be wrapped like this: <tt>$Format:PLACEHOLDERS$</tt> -in the file. E.g. the string <tt>$Format:%H$</tt> will be replaced by the +as those for the option <code>--pretty=format:</code> of <a href="git-log.html">git-log(1)</a>, +except that they need to be wrapped like this: <code>$Format:PLACEHOLDERS$</code> +in the file. E.g. the string <code>$Format:%H$</code> will be replaced by the commit hash.</p></div> </div> </div> <div class="sect2"> <h3 id="_packing_objects">Packing objects</h3> <div class="sect3"> -<h4 id="_tt_delta_tt"><tt>delta</tt></h4> +<h4 id="_code_delta_code"><code>delta</code></h4> <div class="paragraph"><p>Delta compression will not be attempted for blobs for paths with the -attribute <tt>delta</tt> set to false.</p></div> +attribute <code>delta</code> set to false.</p></div> </div> </div> <div class="sect2"> <h3 id="_viewing_files_in_gui_tools">Viewing files in GUI tools</h3> <div class="sect3"> -<h4 id="_tt_encoding_tt"><tt>encoding</tt></h4> +<h4 id="_code_encoding_code"><code>encoding</code></h4> <div class="paragraph"><p>The value of this attribute specifies the character encoding that should be used by GUI tools (e.g. <a href="gitk.html">gitk(1)</a> and <a href="git-gui.html">git-gui(1)</a>) to display the contents of the relevant file. Note that due to performance considerations <a href="gitk.html">gitk(1)</a> does not use this attribute unless you manually enable per-file encodings in its options.</p></div> <div class="paragraph"><p>If this attribute is not set or has an invalid value, the value of the -<tt>gui.encoding</tt> configuration variable is used instead +<code>gui.encoding</code> configuration variable is used instead (See <a href="git-config.html">git-config(1)</a>).</p></div> </div> </div> @@ -1751,15 +1749,15 @@ produced for, any binary file you track. You would need to specify e.g.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>*.jpg -text -diff</tt></pre> +<pre><code>*.jpg -text -diff</code></pre> </div></div> <div class="paragraph"><p>but that may become cumbersome, when you have many attributes. Using macro attributes, you can define an attribute that, when set, also sets or unsets a number of other attributes at the same time. The -system knows a built-in macro attribute, <tt>binary</tt>:</p></div> +system knows a built-in macro attribute, <code>binary</code>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>*.jpg binary</tt></pre> +<pre><code>*.jpg binary</code></pre> </div></div> <div class="paragraph"><p>Setting the "binary" attribute also unsets the "text" and "diff" attributes as above. Note that macro attributes can only be "Set", @@ -1772,24 +1770,24 @@ <h2 id="_defining_macro_attributes">DEFINING MACRO ATTRIBUTES</h2> <div class="sectionbody"> <div class="paragraph"><p>Custom macro attributes can be defined only in top-level gitattributes -files (<tt>$GIT_DIR/info/attributes</tt>, the <tt>.gitattributes</tt> file at the +files (<code>$GIT_DIR/info/attributes</code>, the <code>.gitattributes</code> file at the top level of the working tree, or the global or system-wide -gitattributes files), not in <tt>.gitattributes</tt> files in working tree +gitattributes files), not in <code>.gitattributes</code> files in working tree subdirectories. The built-in macro attribute "binary" is equivalent to:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[attr]binary -diff -merge -text</tt></pre> +<pre><code>[attr]binary -diff -merge -text</code></pre> </div></div> </div> </div> <div class="sect1"> <h2 id="_example">EXAMPLE</h2> <div class="sectionbody"> -<div class="paragraph"><p>If you have these three <tt>gitattributes</tt> file:</p></div> +<div class="paragraph"><p>If you have these three <code>gitattributes</code> file:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>(in $GIT_DIR/info/attributes) +<pre><code>(in $GIT_DIR/info/attributes) a* foo !bar -baz @@ -1799,45 +1797,45 @@ (in t/.gitattributes) ab* merge=filfre abc -foo -bar -*.c frotz</tt></pre> +*.c frotz</code></pre> </div></div> -<div class="paragraph"><p>the attributes given to path <tt>t/abc</tt> are computed as follows:</p></div> +<div class="paragraph"><p>the attributes given to path <code>t/abc</code> are computed as follows:</p></div> <div class="olist arabic"><ol class="arabic"> <li> <p> -By examining <tt>t/.gitattributes</tt> (which is in the same +By examining <code>t/.gitattributes</code> (which is in the same directory as the path in question), Git finds that the first - line matches. <tt>merge</tt> attribute is set. It also finds that - the second line matches, and attributes <tt>foo</tt> and <tt>bar</tt> + line matches. <code>merge</code> attribute is set. It also finds that + the second line matches, and attributes <code>foo</code> and <code>bar</code> are unset. </p> </li> <li> <p> -Then it examines <tt>.gitattributes</tt> (which is in the parent +Then it examines <code>.gitattributes</code> (which is in the parent directory), and finds that the first line matches, but - <tt>t/.gitattributes</tt> file already decided how <tt>merge</tt>, <tt>foo</tt> - and <tt>bar</tt> attributes should be given to this path, so it - leaves <tt>foo</tt> and <tt>bar</tt> unset. Attribute <tt>baz</tt> is set. + <code>t/.gitattributes</code> file already decided how <code>merge</code>, <code>foo</code> + and <code>bar</code> attributes should be given to this path, so it + leaves <code>foo</code> and <code>bar</code> unset. Attribute <code>baz</code> is set. </p> </li> <li> <p> -Finally it examines <tt>$GIT_DIR/info/attributes</tt>. This file +Finally it examines <code>$GIT_DIR/info/attributes</code>. This file is used to override the in-tree settings. The first line is - a match, and <tt>foo</tt> is set, <tt>bar</tt> is reverted to unspecified - state, and <tt>baz</tt> is unset. + a match, and <code>foo</code> is set, <code>bar</code> is reverted to unspecified + state, and <code>baz</code> is unset. </p> </li> </ol></div> -<div class="paragraph"><p>As the result, the attributes assignment to <tt>t/abc</tt> becomes:</p></div> +<div class="paragraph"><p>As the result, the attributes assignment to <code>t/abc</code> becomes:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>foo set to true +<pre><code>foo set to true bar unspecified baz set to false merge set to string value "filfre" -frotz unspecified</tt></pre> +frotz unspecified</code></pre> </div></div> </div> </div>
diff --git a/gitcli.html b/gitcli.html index 3ec9a17..a787f0e 100644 --- a/gitcli.html +++ b/gitcli.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitcli(7)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -763,33 +761,33 @@ <li> <p> Revisions come first and then paths. - E.g. in <tt>git diff v1.0 v2.0 arch/x86 include/asm-x86</tt>, - <tt>v1.0</tt> and <tt>v2.0</tt> are revisions and <tt>arch/x86</tt> and <tt>include/asm-x86</tt> + E.g. in <code>git diff v1.0 v2.0 arch/x86 include/asm-x86</code>, + <code>v1.0</code> and <code>v2.0</code> are revisions and <code>arch/x86</code> and <code>include/asm-x86</code> are paths. </p> </li> <li> <p> When an argument can be misunderstood as either a revision or a path, - they can be disambiguated by placing <tt>--</tt> between them. - E.g. <tt>git diff -- HEAD</tt> is, "I have a file called HEAD in my work + they can be disambiguated by placing <code>--</code> between them. + E.g. <code>git diff -- HEAD</code> is, "I have a file called HEAD in my work tree. Please show changes between the version I staged in the index and what I have in the work tree for that file", not "show difference between the HEAD commit and the work tree as a whole". You can say - <tt>git diff HEAD --</tt> to ask for the latter. + <code>git diff HEAD --</code> to ask for the latter. </p> </li> <li> <p> -Without disambiguating <tt>--</tt>, Git makes a reasonable guess, but errors +Without disambiguating <code>--</code>, Git makes a reasonable guess, but errors out and asking you to disambiguate when ambiguous. E.g. if you have a - file called HEAD in your work tree, <tt>git diff HEAD</tt> is ambiguous, and - you have to say either <tt>git diff HEAD --</tt> or <tt>git diff -- HEAD</tt> to + file called HEAD in your work tree, <code>git diff HEAD</code> is ambiguous, and + you have to say either <code>git diff HEAD --</code> or <code>git diff -- HEAD</code> to disambiguate. </p> <div class="paragraph"><p>When writing a script that is expected to handle random user-input, it is a good practice to make it explicit which arguments are which by placing -disambiguating <tt>--</tt> at appropriate places.</p></div> +disambiguating <code>--</code> at appropriate places.</p></div> </li> <li> <p> @@ -799,15 +797,15 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout -- *.c -$ git checkout -- \*.c</tt></pre> +<pre><code>$ git checkout -- *.c +$ git checkout -- \*.c</code></pre> </div></div> <div class="paragraph"><p>The former lets your shell expand the fileglob, and you are asking the dot-C files in your working tree to be overwritten with the version -in the index. The latter passes the <tt>*.c</tt> to Git, and you are asking +in the index. The latter passes the <code>*.c</code> to Git, and you are asking the paths in the index that match the pattern to be checked out to your -working tree. After running <tt>git add hello.c; rm hello.c</tt>, you will <em>not</em> -see <tt>hello.c</tt> in your working tree with the former, but with the latter +working tree. After running <code>git add hello.c; rm hello.c</code>, you will <em>not</em> +see <code>hello.c</code> in your working tree with the former, but with the latter you will.</p></div> </li> <li> @@ -824,20 +822,20 @@ <li> <p> it’s preferred to use the non-dashed form of Git commands, which means that - you should prefer <tt>git foo</tt> to <tt>git-foo</tt>. + you should prefer <code>git foo</code> to <code>git-foo</code>. </p> </li> <li> <p> -splitting short options to separate words (prefer <tt>git foo -a -b</tt> - to <tt>git foo -ab</tt>, the latter may not even work). +splitting short options to separate words (prefer <code>git foo -a -b</code> + to <code>git foo -ab</code>, the latter may not even work). </p> </li> <li> <p> when a command-line option takes an argument, use the <em>stuck</em> form. In - other words, write <tt>git foo -oArg</tt> instead of <tt>git foo -o Arg</tt> for short - options, and <tt>git foo --long-opt=Arg</tt> instead of <tt>git foo --long-opt Arg</tt> + other words, write <code>git foo -oArg</code> instead of <code>git foo -o Arg</code> for short + options, and <code>git foo --long-opt=Arg</code> instead of <code>git foo --long-opt Arg</code> for long options. An option that takes optional option-argument must be written in the <em>stuck</em> form. </p> @@ -846,18 +844,18 @@ <p> when you give a revision parameter to a command, make sure the parameter is not ambiguous with a name of a file in the work tree. E.g. do not write - <tt>git log -1 HEAD</tt> but write <tt>git log -1 HEAD --</tt>; the former will not work - if you happen to have a file called <tt>HEAD</tt> in the work tree. + <code>git log -1 HEAD</code> but write <code>git log -1 HEAD --</code>; the former will not work + if you happen to have a file called <code>HEAD</code> in the work tree. </p> </li> <li> <p> -many commands allow a long option <tt>--option</tt> to be abbreviated +many commands allow a long option <code>--option</code> to be abbreviated only to their unique prefix (e.g. if there is no other option - whose name begins with <tt>opt</tt>, you may be able to spell <tt>--opt</tt> to - invoke the <tt>--option</tt> flag), but you should fully spell them out + whose name begins with <code>opt</code>, you may be able to spell <code>--opt</code> to + invoke the <code>--option</code> flag), but you should fully spell them out when writing your scripts; later versions of Git may introduce a - new option whose name shares the same prefix, e.g. <tt>--optimize</tt>, + new option whose name shares the same prefix, e.g. <code>--optimize</code>, to make a short prefix that used to be unique no longer unique. </p> </li> @@ -884,7 +882,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git describe -h +<pre><code>$ git describe -h usage: git describe [options] <commit-ish>* or: git describe [options] --dirty @@ -893,7 +891,7 @@ --all use any ref --tags use any tag, even unannotated --long always use long format - --abbrev[=<n>] use <n> digits to display SHA-1s</tt></pre> + --abbrev[=<n>] use <n> digits to display SHA-1s</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -910,25 +908,25 @@ </div> <div class="sect2"> <h3 id="_negating_options">Negating options</h3> -<div class="paragraph"><p>Options with long option names can be negated by prefixing <tt>--no-</tt>. For -example, <tt>git branch</tt> has the option <tt>--track</tt> which is <em>on</em> by default. You -can use <tt>--no-track</tt> to override that behaviour. The same goes for <tt>--color</tt> -and <tt>--no-color</tt>.</p></div> +<div class="paragraph"><p>Options with long option names can be negated by prefixing <code>--no-</code>. For +example, <code>git branch</code> has the option <code>--track</code> which is <em>on</em> by default. You +can use <code>--no-track</code> to override that behaviour. The same goes for <code>--color</code> +and <code>--no-color</code>.</p></div> </div> <div class="sect2"> <h3 id="_aggregating_short_options">Aggregating short options</h3> <div class="paragraph"><p>Commands that support the enhanced option parser allow you to aggregate short -options. This means that you can for example use <tt>git rm -rf</tt> or -<tt>git clean -fdx</tt>.</p></div> +options. This means that you can for example use <code>git rm -rf</code> or +<code>git clean -fdx</code>.</p></div> </div> <div class="sect2"> <h3 id="_abbreviating_long_options">Abbreviating long options</h3> <div class="paragraph"><p>Commands that support the enhanced option parser accepts unique prefix of a long option as if it is fully spelled out, but use this -with a caution. For example, <tt>git commit --amen</tt> behaves as if you -typed <tt>git commit --amend</tt>, but that is true only until a later version +with a caution. For example, <code>git commit --amen</code> behaves as if you +typed <code>git commit --amend</code>, but that is true only until a later version of Git introduces another option that shares the same prefix, -e.g. <tt>git commit --amenity</tt> option.</p></div> +e.g. <code>git commit --amenity</code> option.</p></div> </div> <div class="sect2"> <h3 id="_separating_argument_from_the_option">Separating argument from the option</h3> @@ -936,18 +934,18 @@ word on the command line. That means that all the following uses work:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git foo --long-opt=Arg +<pre><code>$ git foo --long-opt=Arg $ git foo --long-opt Arg $ git foo -oArg -$ git foo -o Arg</tt></pre> +$ git foo -o Arg</code></pre> </div></div> <div class="paragraph"><p>However, this is <strong>NOT</strong> allowed for switches with an optional value, where the <em>stuck</em> form must be used:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git describe --abbrev HEAD # correct +<pre><code>$ git describe --abbrev HEAD # correct $ git describe --abbrev=10 HEAD # correct -$ git describe --abbrev 10 HEAD # NOT WHAT YOU MEANT</tt></pre> +$ git describe --abbrev 10 HEAD # NOT WHAT YOU MEANT</code></pre> </div></div> </div> </div> @@ -956,7 +954,7 @@ <h2 id="_notes_on_frequently_confused_options">NOTES ON FREQUENTLY CONFUSED OPTIONS</h2> <div class="sectionbody"> <div class="paragraph"><p>Many commands that can work on files in the working tree -and/or in the index can take <tt>--cached</tt> and/or <tt>--index</tt> +and/or in the index can take <code>--cached</code> and/or <code>--index</code> options. Sometimes people incorrectly think that, because the index was originally called cache, these two are synonyms. They are <strong>not</strong> — these two options mean very @@ -964,31 +962,31 @@ <div class="ulist"><ul> <li> <p> -The <tt>--cached</tt> option is used to ask a command that +The <code>--cached</code> option is used to ask a command that usually works on files in the working tree to <strong>only</strong> work - with the index. For example, <tt>git grep</tt>, when used + with the index. For example, <code>git grep</code>, when used without a commit to specify from which commit to look for strings in, usually works on files in the working tree, - but with the <tt>--cached</tt> option, it looks for strings in + but with the <code>--cached</code> option, it looks for strings in the index. </p> </li> <li> <p> -The <tt>--index</tt> option is used to ask a command that +The <code>--index</code> option is used to ask a command that usually works on files in the working tree to <strong>also</strong> - affect the index. For example, <tt>git stash apply</tt> usually + affect the index. For example, <code>git stash apply</code> usually merges changes recorded in a stash to the working tree, - but with the <tt>--index</tt> option, it also merges changes to + but with the <code>--index</code> option, it also merges changes to the index as well. </p> </li> </ul></div> -<div class="paragraph"><p><tt>git apply</tt> command can be used with <tt>--cached</tt> and -<tt>--index</tt> (but not at the same time). Usually the command +<div class="paragraph"><p><code>git apply</code> command can be used with <code>--cached</code> and +<code>--index</code> (but not at the same time). Usually the command only affects the files in the working tree, but with -<tt>--index</tt>, it patches both the files and their index -entries, and with <tt>--cached</tt>, it modifies only the index +<code>--index</code>, it patches both the files and their index +entries, and with <code>--cached</code>, it modifies only the index entries.</p></div> <div class="paragraph"><p>See also <a href="http://marc.info/?l=git&m=116563135620359">http://marc.info/?l=git&m=116563135620359</a> and <a href="http://marc.info/?l=git&m=119150393620273">http://marc.info/?l=git&m=119150393620273</a> for further
diff --git a/gitcredentials.html b/gitcredentials.html index 129194a..7eeede9 100644 --- a/gitcredentials.html +++ b/gitcredentials.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitcredentials(7)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -751,8 +749,8 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt>git config credential.https://example.com.username myusername -git config credential.helper "$helper $options"</tt></pre> +<pre><code>git config credential.https://example.com.username myusername +git config credential.helper "$helper $options"</code></pre> </div></div> </div> </div> @@ -774,7 +772,7 @@ <div class="olist arabic"><ol class="arabic"> <li> <p> -If the <tt>GIT_ASKPASS</tt> environment variable is set, the program +If the <code>GIT_ASKPASS</code> environment variable is set, the program specified by the variable is invoked. A suitable prompt is provided to the program on the command line, and the user’s input is read from its standard output. @@ -782,13 +780,13 @@ </li> <li> <p> -Otherwise, if the <tt>core.askpass</tt> configuration variable is set, its +Otherwise, if the <code>core.askpass</code> configuration variable is set, its value is used as above. </p> </li> <li> <p> -Otherwise, if the <tt>SSH_ASKPASS</tt> environment variable is set, its +Otherwise, if the <code>SSH_ASKPASS</code> environment variable is set, its value is used as above. </p> </li> @@ -822,8 +820,8 @@ for a password. It is generally configured by adding this to your config:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[credential "https://example.com"] - username = me</tt></pre> +<pre><code>[credential "https://example.com"] + username = me</code></pre> </div></div> <div class="paragraph"><p>Credential helpers, on the other hand, are external programs from which Git can request both usernames and passwords; they typically interface with secure @@ -851,7 +849,7 @@ </dd> </dl></div> <div class="paragraph"><p>You may also have third-party helpers installed; search for -<tt>credential-*</tt> in the output of <tt>git help -a</tt>, and consult the +<code>credential-*</code> in the output of <code>git help -a</code>, and consult the documentation of individual helpers. Once you have selected a helper, you can tell Git to use it by putting its name into the credential.helper variable.</p></div> @@ -862,8 +860,8 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git help -a | grep credential- -credential-foo</tt></pre> +<pre><code>$ git help -a | grep credential- +credential-foo</code></pre> </div></div> </li> <li> @@ -872,7 +870,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git help credential-foo</tt></pre> +<pre><code>$ git help credential-foo</code></pre> </div></div> </li> <li> @@ -881,11 +879,11 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$ git config --global credential.helper foo</tt></pre> +<pre><code>$ git config --global credential.helper foo</code></pre> </div></div> </li> </ol></div> -<div class="paragraph"><p>If there are multiple instances of the <tt>credential.helper</tt> configuration +<div class="paragraph"><p>If there are multiple instances of the <code>credential.helper</code> configuration variable, each helper will be tried in turn, and may provide a username, password, or nothing. Once Git has acquired both a username and a password, no more helpers will be tried.</p></div> @@ -897,26 +895,26 @@ <div class="paragraph"><p>Git considers each credential to have a context defined by a URL. This context is used to look up context-specific configuration, and is passed to any helpers, which may use it as an index into secure storage.</p></div> -<div class="paragraph"><p>For instance, imagine we are accessing <tt>https://example.com/foo.git</tt>. When Git +<div class="paragraph"><p>For instance, imagine we are accessing <code>https://example.com/foo.git</code>. When Git looks into a config file to see if a section matches this context, it will consider the two a match if the context is a more-specific subset of the pattern in the config file. For example, if you have this in your config file:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[credential "https://example.com"] - username = foo</tt></pre> +<pre><code>[credential "https://example.com"] + username = foo</code></pre> </div></div> <div class="paragraph"><p>then we will match: both protocols are the same, both hosts are the same, and the "pattern" URL does not care about the path component at all. However, this context would not match:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[credential "https://kernel.org"] - username = foo</tt></pre> +<pre><code>[credential "https://kernel.org"] + username = foo</code></pre> </div></div> -<div class="paragraph"><p>because the hostnames differ. Nor would it match <tt>foo.example.com</tt>; Git +<div class="paragraph"><p>because the hostnames differ. Nor would it match <code>foo.example.com</code>; Git compares hostnames exactly, without considering whether two hosts are part of -the same domain. Likewise, a config entry for <tt>http://example.com</tt> would not +the same domain. Likewise, a config entry for <code>http://example.com</code> would not match: Git compares the protocols exactly.</p></div> </div> </div> @@ -924,8 +922,8 @@ <h2 id="_configuration_options">CONFIGURATION OPTIONS</h2> <div class="sectionbody"> <div class="paragraph"><p>Options for a credential context can be configured either in -<tt>credential.*</tt> (which applies to all credentials), or -<tt>credential.<url>.*</tt>, where <url> matches the context as described +<code>credential.*</code> (which applies to all credentials), or +<code>credential.<url>.*</code>, where <url> matches the context as described above.</p></div> <div class="paragraph"><p>The following options are available in either location:</p></div> <div class="dlist"><dl> @@ -935,10 +933,10 @@ <dd> <p> The name of an external credential helper, and any associated options. - If the helper name is not an absolute path, then the string <tt>git - credential-</tt> is prepended. The resulting string is executed by the - shell (so, for example, setting this to <tt>foo --option=bar</tt> will execute - <tt>git credential-foo --option=bar</tt> via the shell. See the manual of + If the helper name is not an absolute path, then the string <code>git + credential-</code> is prepended. The resulting string is executed by the + shell (so, for example, setting this to <code>foo --option=bar</code> will execute + <code>git credential-foo --option=bar</code> via the shell. See the manual of specific helpers for examples of their use. </p> </dd> @@ -957,9 +955,9 @@ <p> By default, Git does not consider the "path" component of an http URL to be worth matching via external helpers. This means that a credential - stored for <tt>https://example.com/foo.git</tt> will also be used for - <tt>https://example.com/bar.git</tt>. If you do want to distinguish these - cases, set this option to <tt>true</tt>. + stored for <code>https://example.com/foo.git</code> will also be used for + <code>https://example.com/bar.git</code>. If you do want to distinguish these + cases, set this option to <code>true</code>. </p> </dd> </dl></div>
diff --git a/gitdiffcore.html b/gitdiffcore.html index f4dbc5b..798bf57 100644 --- a/gitdiffcore.html +++ b/gitdiffcore.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitdiffcore(7)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -800,9 +798,9 @@ input set of filepairs included:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>:100644 100644 bcd1234... 0123456... M junkfile</tt></pre> +<pre><code>:100644 100644 bcd1234... 0123456... M junkfile</code></pre> </div></div> -<div class="paragraph"><p>but the command invocation was <tt>git diff-files myfile</tt>, then the +<div class="paragraph"><p>but the command invocation was <code>git diff-files myfile</code>, then the junkfile entry would be removed from the list because only "myfile" is under consideration.</p></div> <div class="paragraph"><p>The result of comparison is passed from these commands to what is @@ -810,10 +808,10 @@ when the -p option is not used. E.g.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>in-place edit :100644 100644 bcd1234... 0123456... M file0 +<pre><code>in-place edit :100644 100644 bcd1234... 0123456... M file0 create :000000 100644 0000000... 1234567... A file4 delete :100644 000000 1234567... 0000000... D file5 -unmerged :000000 000000 0000000... 0000000... U file6</tt></pre> +unmerged :000000 000000 0000000... 0000000... U file6</code></pre> </div></div> <div class="paragraph"><p>The diffcore mechanism is fed a list of such comparison results (each of which is called "filepair", although at this point each @@ -865,14 +863,14 @@ create. E.g. If the input contained this filepair:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>:100644 100644 bcd1234... 0123456... M file0</tt></pre> +<pre><code>:100644 100644 bcd1234... 0123456... M file0</code></pre> </div></div> <div class="paragraph"><p>and if it detects that the file "file0" is completely rewritten, it changes it to:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>:100644 000000 bcd1234... 0000000... D file0 -:000000 100644 0000000... 0123456... A file0</tt></pre> +<pre><code>:100644 000000 bcd1234... 0000000... D file0 +:000000 100644 0000000... 0123456... A file0</code></pre> </div></div> <div class="paragraph"><p>For the purpose of breaking a filepair, diffcore-break examines the extent of changes between the contents of the files before @@ -897,15 +895,15 @@ input contained these filepairs:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>:100644 000000 0123456... 0000000... D fileX -:000000 100644 0000000... 0123456... A file0</tt></pre> +<pre><code>:100644 000000 0123456... 0000000... D fileX +:000000 100644 0000000... 0123456... A file0</code></pre> </div></div> <div class="paragraph"><p>and the contents of the deleted file fileX is similar enough to the contents of the created file file0, then rename detection merges these filepairs and creates:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>:100644 100644 0123456... 0123456... R100 fileX file0</tt></pre> +<pre><code>:100644 100644 0123456... 0123456... R100 fileX file0</code></pre> </div></div> <div class="paragraph"><p>When the "-C" option is used, the original contents of modified files, and deleted files (and also unmodified files, if the @@ -915,16 +913,16 @@ created file file0:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>:100644 100644 0123456... 1234567... M fileY -:000000 100644 0000000... bcd3456... A file0</tt></pre> +<pre><code>:100644 100644 0123456... 1234567... M fileY +:000000 100644 0000000... bcd3456... A file0</code></pre> </div></div> <div class="paragraph"><p>the original contents of fileY and the resulting contents of file0 are compared, and if they are similar enough, they are changed to:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>:100644 100644 0123456... 1234567... M fileY -:100644 100644 0123456... bcd3456... C100 fileY file0</tt></pre> +<pre><code>:100644 100644 0123456... 1234567... M fileY +:100644 100644 0123456... bcd3456... C100 fileY file0</code></pre> </div></div> <div class="paragraph"><p>In both rename and copy detection, the same "extent of changes" algorithm used in diffcore-break is used to determine if two @@ -932,11 +930,11 @@ a similarity score different from the default of 50% by giving a number after the "-M" or "-C" option (e.g. "-M8" to tell it to use 8/10 = 80%).</p></div> -<div class="paragraph"><p>Note. When the "-C" option is used with <tt>--find-copies-harder</tt> +<div class="paragraph"><p>Note. When the "-C" option is used with <code>--find-copies-harder</code> option, <em>git diff-*</em> commands feed unmodified filepairs to diffcore mechanism as well as modified ones. This lets the copy detector consider unmodified files as copy source candidates at -the expense of making it slower. Without <tt>--find-copies-harder</tt>, +the expense of making it slower. Without <code>--find-copies-harder</code>, <em>git diff-*</em> commands can detect copies only if the file that was copied happened to have been modified in the same changeset.</p></div> </div> @@ -999,9 +997,9 @@ have different number of occurrences of the specified block of text. By definition, it will not detect in-file moves. Also, when a changeset moves a file wholesale without affecting the interesting -string, diffcore-rename kicks in as usual, and <tt>-S</tt> omits the filepair +string, diffcore-rename kicks in as usual, and <code>-S</code> omits the filepair (since the number of occurrences of that string didn’t change in that -rename-detected filepair). When used with <tt>--pickaxe-regex</tt>, treat +rename-detected filepair). When used with <code>--pickaxe-regex</code>, treat the <block of text> as an extended POSIX regular expression to match, instead of a literal string.</p></div> <div class="paragraph"><p>"-G<regular expression>" (mnemonic: grep) detects filepairs whose @@ -1010,9 +1008,9 @@ rename-detection considers the same file) moves, which is noise. The implementation runs diff twice and greps, and this can be quite expensive.</p></div> -<div class="paragraph"><p>When <tt>-S</tt> or <tt>-G</tt> are used without <tt>--pickaxe-all</tt>, only filepairs +<div class="paragraph"><p>When <code>-S</code> or <code>-G</code> are used without <code>--pickaxe-all</code>, only filepairs that match their respective criterion are kept in the output. When -<tt>--pickaxe-all</tt> is used, if even one filepair matches their respective +<code>--pickaxe-all</code> is used, if even one filepair matches their respective criterion in a changeset, the entire changeset is kept. This behavior is designed to make reviewing changes in the context of the whole changeset easier.</p></div> @@ -1032,12 +1030,12 @@ would look like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>README +<pre><code>README Makefile Documentation *.h *.c -t</tt></pre> +t</code></pre> </div></div> </div> </div>
diff --git a/githooks.html b/githooks.html index ebae558..02a23b0 100644 --- a/githooks.html +++ b/githooks.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>githooks(5)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -755,11 +753,11 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>Hooks are little scripts you can place in <tt>$GIT_DIR/hooks</tt> +<div class="paragraph"><p>Hooks are little scripts you can place in <code>$GIT_DIR/hooks</code> directory to trigger action at certain points. When <em>git init</em> is run, a handful of example hooks are copied into the -<tt>hooks</tt> directory of the new repository, but by default they are -all disabled. To enable a hook, rename it by removing its <tt>.sample</tt> +<code>hooks</code> directory of the new repository, but by default they are +all disabled. To enable a hook, rename it by removing its <code>.sample</code> suffix.</p></div> <div class="admonitionblock"> <table><tr> @@ -767,7 +765,7 @@ <div class="title">Note</div> </td> <td class="content">It is also a requirement for a given hook to be executable. -However - in a freshly initialized repository - the <tt>.sample</tt> files are +However - in a freshly initialized repository - the <code>.sample</code> files are executable by default.</td> </tr></table> </div> @@ -811,7 +809,7 @@ <div class="sect2"> <h3 id="_pre_commit">pre-commit</h3> <div class="paragraph"><p>This hook is invoked by <em>git commit</em>, and can be bypassed -with <tt>--no-verify</tt> option. It takes no parameter, and is +with <code>--no-verify</code> option. It takes no parameter, and is invoked before obtaining the proposed commit log message and making a commit. Exiting with non-zero status from this script causes the <em>git commit</em> to abort.</p></div> @@ -819,7 +817,7 @@ of lines with trailing whitespaces and aborts the commit when such a line is found.</p></div> <div class="paragraph"><p>All the <em>git commit</em> hooks are invoked with the environment -variable <tt>GIT_EDITOR=:</tt> if the command will not bring up an editor +variable <code>GIT_EDITOR=:</code> if the command will not bring up an editor to modify the commit message.</p></div> </div> <div class="sect2"> @@ -828,24 +826,24 @@ default log message, and before the editor is started.</p></div> <div class="paragraph"><p>It takes one to three parameters. The first is the name of the file that contains the commit log message. The second is the source of the commit -message, and can be: <tt>message</tt> (if a <tt>-m</tt> or <tt>-F</tt> option was -given); <tt>template</tt> (if a <tt>-t</tt> option was given or the -configuration option <tt>commit.template</tt> is set); <tt>merge</tt> (if the -commit is a merge or a <tt>.git/MERGE_MSG</tt> file exists); <tt>squash</tt> -(if a <tt>.git/SQUASH_MSG</tt> file exists); or <tt>commit</tt>, followed by -a commit SHA-1 (if a <tt>-c</tt>, <tt>-C</tt> or <tt>--amend</tt> option was given).</p></div> +message, and can be: <code>message</code> (if a <code>-m</code> or <code>-F</code> option was +given); <code>template</code> (if a <code>-t</code> option was given or the +configuration option <code>commit.template</code> is set); <code>merge</code> (if the +commit is a merge or a <code>.git/MERGE_MSG</code> file exists); <code>squash</code> +(if a <code>.git/SQUASH_MSG</code> file exists); or <code>commit</code>, followed by +a commit SHA-1 (if a <code>-c</code>, <code>-C</code> or <code>--amend</code> option was given).</p></div> <div class="paragraph"><p>If the exit status is non-zero, <em>git commit</em> will abort.</p></div> <div class="paragraph"><p>The purpose of the hook is to edit the message file in place, and -it is not suppressed by the <tt>--no-verify</tt> option. A non-zero exit +it is not suppressed by the <code>--no-verify</code> option. A non-zero exit means a failure of the hook and aborts the commit. It should not be used as replacement for pre-commit hook.</p></div> -<div class="paragraph"><p>The sample <tt>prepare-commit-msg</tt> hook that comes with Git comments -out the <tt>Conflicts:</tt> part of a merge’s commit message.</p></div> +<div class="paragraph"><p>The sample <code>prepare-commit-msg</code> hook that comes with Git comments +out the <code>Conflicts:</code> part of a merge’s commit message.</p></div> </div> <div class="sect2"> <h3 id="_commit_msg">commit-msg</h3> <div class="paragraph"><p>This hook is invoked by <em>git commit</em>, and can be bypassed -with <tt>--no-verify</tt> option. It takes a single parameter, the +with <code>--no-verify</code> option. It takes a single parameter, the name of the file that holds the proposed commit log message. Exiting with non-zero status causes the <em>git commit</em> to abort.</p></div> @@ -908,19 +906,19 @@ input with lines of the form:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><local ref> SP <local sha1> SP <remote ref> SP <remote sha1> LF</tt></pre> +<pre><code><local ref> SP <local sha1> SP <remote ref> SP <remote sha1> LF</code></pre> </div></div> -<div class="paragraph"><p>For instance, if the command <tt>git push origin master:foreign</tt> were run the +<div class="paragraph"><p>For instance, if the command <code>git push origin master:foreign</code> were run the hook would receive a line like the following:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>refs/heads/master 67890 refs/heads/foreign 12345</tt></pre> +<pre><code>refs/heads/master 67890 refs/heads/foreign 12345</code></pre> </div></div> <div class="paragraph"><p>although the full, 40-character SHA-1s would be supplied. If the foreign ref -does not yet exist the <tt><remote SHA-1></tt> will be 40 <tt>0</tt>. If a ref is to be -deleted, the <tt><local ref></tt> will be supplied as <tt>(delete)</tt> and the <tt><local -SHA-1></tt> will be 40 <tt>0</tt>. If the local commit was specified by something other -than a name which could be expanded (such as <tt>HEAD~</tt>, or a SHA-1) it will be +does not yet exist the <code><remote SHA-1></code> will be 40 <code>0</code>. If a ref is to be +deleted, the <code><local ref></code> will be supplied as <code>(delete)</code> and the <code><local +SHA-1></code> will be 40 <code>0</code>. If the local commit was specified by something other +than a name which could be expanded (such as <code>HEAD~</code>, or a SHA-1) it will be supplied as it was originally given.</p></div> <div class="paragraph"><p>If this hook exits with a non-zero status, <em>git push</em> will abort without pushing anything. Information about why the push is rejected may be sent @@ -938,17 +936,17 @@ input a line of the format:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><old-value> SP <new-value> SP <ref-name> LF</tt></pre> +<pre><code><old-value> SP <new-value> SP <ref-name> LF</code></pre> </div></div> -<div class="paragraph"><p>where <tt><old-value></tt> is the old object name stored in the ref, -<tt><new-value></tt> is the new object name to be stored in the ref and -<tt><ref-name></tt> is the full name of the ref. -When creating a new ref, <tt><old-value></tt> is 40 <tt>0</tt>.</p></div> +<div class="paragraph"><p>where <code><old-value></code> is the old object name stored in the ref, +<code><new-value></code> is the new object name to be stored in the ref and +<code><ref-name></code> is the full name of the ref. +When creating a new ref, <code><old-value></code> is 40 <code>0</code>.</p></div> <div class="paragraph"><p>If the hook exits with non-zero status, none of the refs will be updated. If the hook exits with zero, updating of individual refs can still be prevented by the <a href="#update"><em>update</em></a> hook.</p></div> <div class="paragraph"><p>Both standard output and standard error output are forwarded to -<em>git send-pack</em> on the other end, so you can simply <tt>echo</tt> messages +<em>git send-pack</em> on the other end, so you can simply <code>echo</code> messages for the user.</p></div> </div> <div class="sect2"> @@ -992,10 +990,10 @@ implement access control which is finer grained than the one based on filesystem group.</p></div> <div class="paragraph"><p>Both standard output and standard error output are forwarded to -<em>git send-pack</em> on the other end, so you can simply <tt>echo</tt> messages +<em>git send-pack</em> on the other end, so you can simply <code>echo</code> messages for the user.</p></div> <div class="paragraph"><p>The default <em>update</em> hook, when enabled—and with -<tt>hooks.allowunannotated</tt> config option unset or set to false—prevents +<code>hooks.allowunannotated</code> config option unset or set to false—prevents unannotated tags to be pushed.</p></div> </div> <div class="sect2"> @@ -1014,10 +1012,10 @@ both old and new values of all the refs in addition to their names.</p></div> <div class="paragraph"><p>Both standard output and standard error output are forwarded to -<em>git send-pack</em> on the other end, so you can simply <tt>echo</tt> messages +<em>git send-pack</em> on the other end, so you can simply <code>echo</code> messages for the user.</p></div> <div class="paragraph"><p>The default <em>post-receive</em> hook is empty, but there is -a sample script <tt>post-receive-email</tt> provided in the <tt>contrib/hooks</tt> +a sample script <code>post-receive-email</code> provided in the <code>contrib/hooks</code> directory in Git distribution, which implements sending commit emails.</p></div> </div> @@ -1043,7 +1041,7 @@ a Git repository that is accessible via HTTP, you should probably enable this hook.</p></div> <div class="paragraph"><p>Both standard output and standard error output are forwarded to -<em>git send-pack</em> on the other end, so you can simply <tt>echo</tt> messages +<em>git send-pack</em> on the other end, so you can simply <code>echo</code> messages for the user.</p></div> </div> <div class="sect2"> @@ -1054,16 +1052,16 @@ </div> <div class="sect2"> <h3 id="_post_rewrite">post-rewrite</h3> -<div class="paragraph"><p>This hook is invoked by commands that rewrite commits (<tt>git commit ---amend</tt>, <em>git-rebase</em>; currently <em>git-filter-branch</em> does <em>not</em> call +<div class="paragraph"><p>This hook is invoked by commands that rewrite commits (<code>git commit +--amend</code>, <em>git-rebase</em>; currently <em>git-filter-branch</em> does <em>not</em> call it!). Its first argument denotes the command it was invoked by: -currently one of <tt>amend</tt> or <tt>rebase</tt>. Further command-dependent +currently one of <code>amend</code> or <code>rebase</code>. Further command-dependent arguments may be passed in the future.</p></div> <div class="paragraph"><p>The hook receives a list of the rewritten commits on stdin, in the format</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><old-sha1> SP <new-sha1> [ SP <extra-info> ] LF</tt></pre> +<pre><code><old-sha1> SP <new-sha1> [ SP <extra-info> ] LF</code></pre> </div></div> <div class="paragraph"><p>The <em>extra-info</em> is again command-dependent. If it is empty, the preceding SP is also omitted. Currently, no commands pass any
diff --git a/gitignore.html b/gitignore.html index 7d00efe..a215e59 100644 --- a/gitignore.html +++ b/gitignore.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitignore(5)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -755,13 +753,13 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>A <tt>gitignore</tt> file specifies intentionally untracked files that +<div class="paragraph"><p>A <code>gitignore</code> file specifies intentionally untracked files that Git should ignore. Files already tracked by Git are not affected; see the NOTES below for details.</p></div> -<div class="paragraph"><p>Each line in a <tt>gitignore</tt> file specifies a pattern. +<div class="paragraph"><p>Each line in a <code>gitignore</code> file specifies a pattern. When deciding whether to ignore a path, Git normally checks -<tt>gitignore</tt> patterns from multiple sources, with the following +<code>gitignore</code> patterns from multiple sources, with the following order of precedence, from highest to lowest (within one level of precedence, the last matching pattern decides the outcome):</p></div> <div class="ulist"><ul> @@ -773,19 +771,19 @@ </li> <li> <p> -Patterns read from a <tt>.gitignore</tt> file in the same directory +Patterns read from a <code>.gitignore</code> file in the same directory as the path, or in any parent directory, with patterns in the higher level files (up to the toplevel of the work tree) being overridden by those in lower level files down to the directory containing the file. These patterns match relative to the location of the - <tt>.gitignore</tt> file. A project normally includes such - <tt>.gitignore</tt> files in its repository, containing patterns for + <code>.gitignore</code> file. A project normally includes such + <code>.gitignore</code> files in its repository, containing patterns for files generated as part of the project build. </p> </li> <li> <p> -Patterns read from <tt>$GIT_DIR/info/exclude</tt>. +Patterns read from <code>$GIT_DIR/info/exclude</code>. </p> </li> <li> @@ -802,7 +800,7 @@ <p> Patterns which should be version-controlled and distributed to other repositories via clone (i.e., files that all developers will want - to ignore) should go into a <tt>.gitignore</tt> file. + to ignore) should go into a <code>.gitignore</code> file. </p> </li> <li> @@ -811,7 +809,7 @@ specific to a particular repository but which do not need to be shared with other related repositories (e.g., auxiliary files that live inside the repository but are specific to one user’s workflow) should go into - the <tt>$GIT_DIR/info/exclude</tt> file. + the <code>$GIT_DIR/info/exclude</code> file. </p> </li> <li> @@ -819,7 +817,7 @@ Patterns which a user wants Git to ignore in all situations (e.g., backup or temporary files generated by the user’s editor of choice) generally go into a file specified by - <tt>core.excludesfile</tt> in the user’s <tt>~/.gitconfig</tt>. Its default value is + <code>core.excludesfile</code> in the user’s <code>~/.gitconfig</code>. Its default value is $XDG_CONFIG_HOME/git/ignore. If $XDG_CONFIG_HOME is either not set or empty, $HOME/.config/git/ignore is used instead. </p> @@ -827,7 +825,7 @@ </ul></div> <div class="paragraph"><p>The underlying Git plumbing tools, such as <em>git ls-files</em> and <em>git read-tree</em>, read -<tt>gitignore</tt> patterns specified by command-line options, or from +<code>gitignore</code> patterns specified by command-line options, or from files specified by command-line options. Higher-level Git tools, such as <em>git status</em> and <em>git add</em>, use patterns from the sources specified above.</p></div> @@ -846,35 +844,35 @@ <li> <p> A line starting with # serves as a comment. - Put a backslash ("<tt>\</tt>") in front of the first hash for patterns + Put a backslash ("<code>\</code>") in front of the first hash for patterns that begin with a hash. </p> </li> <li> <p> Trailing spaces are ignored unless they are quoted with backlash - ("<tt>\</tt>"). + ("<code>\</code>"). </p> </li> <li> <p> -An optional prefix "<tt>!</tt>" which negates the pattern; any +An optional prefix "<code>!</code>" which negates the pattern; any matching file excluded by a previous pattern will become included again. It is not possible to re-include a file if a parent directory of that file is excluded. Git doesn’t list excluded directories for performance reasons, so any patterns on contained files have no effect, no matter where they are defined. - Put a backslash ("<tt>\</tt>") in front of the first "<tt>!</tt>" for patterns - that begin with a literal "<tt>!</tt>", for example, "<tt>\!important!.txt</tt>". + Put a backslash ("<code>\</code>") in front of the first "<code>!</code>" for patterns + that begin with a literal "<code>!</code>", for example, "<code>\!important!.txt</code>". </p> </li> <li> <p> If the pattern ends with a slash, it is removed for the purpose of the following description, but it would only find - a match with a directory. In other words, <tt>foo/</tt> will match a - directory <tt>foo</tt> and paths underneath it, but will not match a - regular file or a symbolic link <tt>foo</tt> (this is consistent + a match with a directory. In other words, <code>foo/</code> will match a + directory <code>foo</code> and paths underneath it, but will not match a + regular file or a symbolic link <code>foo</code> (this is consistent with the way how pathspec works in general in Git). </p> </li> @@ -882,9 +880,9 @@ <p> If the pattern does not contain a slash <em>/</em>, Git treats it as a shell glob pattern and checks for a match against the - pathname relative to the location of the <tt>.gitignore</tt> file + pathname relative to the location of the <code>.gitignore</code> file (relative to the toplevel of the work tree if not from a - <tt>.gitignore</tt> file). + <code>.gitignore</code> file). </p> </li> <li> @@ -905,30 +903,30 @@ </p> </li> </ul></div> -<div class="paragraph"><p>Two consecutive asterisks ("<tt>**</tt>") in patterns matched against +<div class="paragraph"><p>Two consecutive asterisks ("<code>**</code>") in patterns matched against full pathname may have special meaning:</p></div> <div class="ulist"><ul> <li> <p> -A leading "<tt>**</tt>" followed by a slash means match in all - directories. For example, "<tt>**/foo</tt>" matches file or directory - "<tt>foo</tt>" anywhere, the same as pattern "<tt>foo</tt>". "<tt>**/foo/bar</tt>" - matches file or directory "<tt>bar</tt>" anywhere that is directly - under directory "<tt>foo</tt>". +A leading "<code>**</code>" followed by a slash means match in all + directories. For example, "<code>**/foo</code>" matches file or directory + "<code>foo</code>" anywhere, the same as pattern "<code>foo</code>". "<code>**/foo/bar</code>" + matches file or directory "<code>bar</code>" anywhere that is directly + under directory "<code>foo</code>". </p> </li> <li> <p> -A trailing "<tt>/**</tt>" matches everything inside. For example, - "<tt>abc/**</tt>" matches all files inside directory "<tt>abc</tt>", relative - to the location of the <tt>.gitignore</tt> file, with infinite depth. +A trailing "<code>/**</code>" matches everything inside. For example, + "<code>abc/**</code>" matches all files inside directory "<code>abc</code>", relative + to the location of the <code>.gitignore</code> file, with infinite depth. </p> </li> <li> <p> A slash followed by two consecutive asterisks then a slash - matches zero or more directories. For example, "<tt>a/**/b</tt>" - matches "<tt>a/b</tt>", "<tt>a/x/b</tt>", "<tt>a/x/y/b</tt>" and so on. + matches zero or more directories. For example, "<code>a/**/b</code>" + matches "<code>a/b</code>", "<code>a/x/b</code>", "<code>a/x/y/b</code>" and so on. </p> </li> <li> @@ -955,7 +953,7 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt> $ git status +<pre><code> $ git status [...] # Untracked files: [...] @@ -978,30 +976,30 @@ # Untracked files: [...] # Documentation/foo.html - [...]</tt></pre> + [...]</code></pre> </div></div> <div class="paragraph"><p>Another example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ cat .gitignore +<pre><code> $ cat .gitignore vmlinux* $ ls arch/foo/kernel/vm* arch/foo/kernel/vmlinux.lds.S - $ echo '!/vmlinux*' >arch/foo/kernel/.gitignore</tt></pre> + $ echo '!/vmlinux*' >arch/foo/kernel/.gitignore</code></pre> </div></div> <div class="paragraph"><p>The second .gitignore prevents Git from ignoring -<tt>arch/foo/kernel/vmlinux.lds.S</tt>.</p></div> -<div class="paragraph"><p>Example to exclude everything except a specific directory <tt>foo/bar</tt> -(note the <tt>/*</tt> - without the slash, the wildcard would also exclude -everything within <tt>foo/bar</tt>):</p></div> +<code>arch/foo/kernel/vmlinux.lds.S</code>.</p></div> +<div class="paragraph"><p>Example to exclude everything except a specific directory <code>foo/bar</code> +(note the <code>/*</code> - without the slash, the wildcard would also exclude +everything within <code>foo/bar</code>):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ cat .gitignore +<pre><code> $ cat .gitignore # exclude everything except directory foo/bar /* !/foo /foo/* - !/foo/bar</tt></pre> + !/foo/bar</code></pre> </div></div> </div> </div>
diff --git a/gitk.html b/gitk.html index 00a743f..0fbedb4 100644 --- a/gitk.html +++ b/gitk.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitk(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -846,8 +844,8 @@ <dd> <p> Mark which side of a symmetric diff a commit is reachable - from. Commits from the left side are prefixed with a <tt><</tt> - symbol and those from the right with a <tt>></tt> symbol. + from. Commits from the left side are prefixed with a <code><</code> + symbol and those from the right with a <code>></code> symbol. </p> </dd> <dt class="hdlist1"> @@ -903,7 +901,7 @@ </p> <div class="paragraph"><p><strong>Note:</strong> gitk (unlike <a href="git-log.html">git-log(1)</a>) currently only understands this option if you specify it "glued together" with its argument. Do -<strong>not</strong> put a space after <tt>-L</tt>.</p></div> +<strong>not</strong> put a space after <code>-L</code>.</p></div> <div class="paragraph"><p><start> and <end> can take one of these forms:</p></div> <div class="ulist"><ul> <li> @@ -919,7 +917,7 @@ </p> <div class="paragraph"><p>This form will use the first line matching the given POSIX regex. If <start> is a regex, it will search from the end of -the previous <tt>-L</tt> range, if any, otherwise from the start of file. +the previous <code>-L</code> range, if any, otherwise from the start of file. If <start> is “^/regex/”, it will search from the start of file. If <end> is a regex, it will search starting at the line given by <start>.</p></div> @@ -934,7 +932,7 @@ </ul></div> <div class="paragraph"><p>If “:<regex>” is given in place of <start> and <end>, it denotes the range from the first funcname line that matches <regex>, up to the next -funcname line. “:<regex>” searches from the end of the previous <tt>-L</tt> range, +funcname line. “:<regex>” searches from the end of the previous <code>-L</code> range, if any, otherwise from the start of file. “^:<regex>” searches from the start of file.</p></div> </dd>
diff --git a/gitmodules.html b/gitmodules.html index ef64317e..5643519 100644 --- a/gitmodules.html +++ b/gitmodules.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitmodules(5)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -755,7 +753,7 @@ <div class="sect1"> <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> -<div class="paragraph"><p>The <tt>.gitmodules</tt> file, located in the top-level directory of a Git +<div class="paragraph"><p>The <code>.gitmodules</code> file, located in the top-level directory of a Git working tree, is a text file with a syntax matching the requirements of <a href="git-config.html">git-config(1)</a>.</p></div> <div class="paragraph"><p>The file contains one subsection per submodule, and the subsection value @@ -771,7 +769,7 @@ <p> Defines the path, relative to the top-level directory of the Git working tree, where the submodule is expected to be checked out. - The path name must not end with a <tt>/</tt>. All submodule paths must + The path name must not end with a <code>/</code>. All submodule paths must be unique within the .gitmodules file. </p> </dd> @@ -801,13 +799,13 @@ the commit specified in the superproject. If <em>merge</em>, the commit specified in the superproject will be merged into the current branch in the submodule. - If <em>none</em>, the submodule with name <tt>$name</tt> will not be updated + If <em>none</em>, the submodule with name <code>$name</code> will not be updated by default. </p> <div class="literalblock"> <div class="content"> -<pre><tt>This config option is overridden if 'git submodule update' is given -the '--merge', '--rebase' or '--checkout' options.</tt></pre> +<pre><code>This config option is overridden if 'git submodule update' is given +the '--merge', '--rebase' or '--checkout' options.</code></pre> </div></div> </dd> <dt class="hdlist1"> @@ -817,7 +815,7 @@ <p> A remote branch name for tracking updates in the upstream submodule. If the option is not specified, it defaults to <em>master</em>. See the - <tt>--remote</tt> documentation in <a href="git-submodule.html">git-submodule(1)</a> for details. + <code>--remote</code> documentation in <a href="git-submodule.html">git-submodule(1)</a> for details. </p> </dd> <dt class="hdlist1"> @@ -865,17 +863,17 @@ <div class="paragraph"><p>Consider the following .gitmodules file:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>[submodule "libfoo"] +<pre><code>[submodule "libfoo"] path = include/foo - url = git://foo.com/git/lib.git</tt></pre> + url = git://foo.com/git/lib.git</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>[submodule "libbar"] +<pre><code>[submodule "libbar"] path = include/bar - url = git://bar.com/git/lib.git</tt></pre> + url = git://bar.com/git/lib.git</code></pre> </div></div> -<div class="paragraph"><p>This defines two submodules, <tt>libfoo</tt> and <tt>libbar</tt>. These are expected to +<div class="paragraph"><p>This defines two submodules, <code>libfoo</code> and <code>libbar</code>. These are expected to be checked out in the paths <em>include/foo</em> and <em>include/bar</em>, and for both submodules a URL is specified which can be used for cloning the submodules.</p></div> </div>
diff --git a/gitnamespaces.html b/gitnamespaces.html index 1c4307e..d437c40 100644 --- a/gitnamespaces.html +++ b/gitnamespaces.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitnamespaces(7)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -770,23 +768,23 @@ provides similar support for avoiding duplicates, but alternates do not prevent duplication between new objects added to the repositories without ongoing maintenance, while namespaces do.</p></div> -<div class="paragraph"><p>To specify a namespace, set the <tt>GIT_NAMESPACE</tt> environment variable to +<div class="paragraph"><p>To specify a namespace, set the <code>GIT_NAMESPACE</code> environment variable to the namespace. For each ref namespace, Git stores the corresponding -refs in a directory under <tt>refs/namespaces/</tt>. For example, -<tt>GIT_NAMESPACE=foo</tt> will store refs under <tt>refs/namespaces/foo/</tt>. You -can also specify namespaces via the <tt>--namespace</tt> option to +refs in a directory under <code>refs/namespaces/</code>. For example, +<code>GIT_NAMESPACE=foo</code> will store refs under <code>refs/namespaces/foo/</code>. You +can also specify namespaces via the <code>--namespace</code> option to <a href="git.html">git(1)</a>.</p></div> -<div class="paragraph"><p>Note that namespaces which include a <tt>/</tt> will expand to a hierarchy of -namespaces; for example, <tt>GIT_NAMESPACE=foo/bar</tt> will store refs under -<tt>refs/namespaces/foo/refs/namespaces/bar/</tt>. This makes paths in -<tt>GIT_NAMESPACE</tt> behave hierarchically, so that cloning with -<tt>GIT_NAMESPACE=foo/bar</tt> produces the same result as cloning with -<tt>GIT_NAMESPACE=foo</tt> and cloning from that repo with <tt>GIT_NAMESPACE=bar</tt>. It -also avoids ambiguity with strange namespace paths such as <tt>foo/refs/heads/</tt>, -which could otherwise generate directory/file conflicts within the <tt>refs</tt> +<div class="paragraph"><p>Note that namespaces which include a <code>/</code> will expand to a hierarchy of +namespaces; for example, <code>GIT_NAMESPACE=foo/bar</code> will store refs under +<code>refs/namespaces/foo/refs/namespaces/bar/</code>. This makes paths in +<code>GIT_NAMESPACE</code> behave hierarchically, so that cloning with +<code>GIT_NAMESPACE=foo/bar</code> produces the same result as cloning with +<code>GIT_NAMESPACE=foo</code> and cloning from that repo with <code>GIT_NAMESPACE=bar</code>. It +also avoids ambiguity with strange namespace paths such as <code>foo/refs/heads/</code>, +which could otherwise generate directory/file conflicts within the <code>refs</code> directory.</p></div> <div class="paragraph"><p><a href="git-upload-pack.html">git-upload-pack(1)</a> and <a href="git-receive-pack.html">git-receive-pack(1)</a> rewrite the -names of refs as specified by <tt>GIT_NAMESPACE</tt>. git-upload-pack and +names of refs as specified by <code>GIT_NAMESPACE</code>. git-upload-pack and git-receive-pack will ignore all references outside the specified namespace.</p></div> <div class="paragraph"><p>The smart HTTP server, <a href="git-http-backend.html">git-http-backend(1)</a>, will pass @@ -796,7 +794,7 @@ <div class="paragraph"><p>For a simple local test, you can use <a href="git-remote-ext.html">git-remote-ext(1)</a>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>git clone ext::'git --namespace=foo %s /tmp/prefixed.git'</tt></pre> +<pre><code>git clone ext::'git --namespace=foo %s /tmp/prefixed.git'</code></pre> </div></div> </div> </div>
diff --git a/gitremote-helpers.html b/gitremote-helpers.html index 6998c84..9abed57 100644 --- a/gitremote-helpers.html +++ b/gitremote-helpers.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitremote-helpers(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -825,7 +823,7 @@ <h3 id="_capabilities">Capabilities</h3> <div class="paragraph"><p>Each remote helper is expected to support only a subset of commands. The operations a helper supports are declared to Git in the response -to the <tt>capabilities</tt> command (see COMMANDS, below).</p></div> +to the <code>capabilities</code> command (see COMMANDS, below).</p></div> <div class="paragraph"><p>In the following, we list all defined capabilities and for each we list which commands a helper with that capability must provide.</p></div> @@ -942,8 +940,8 @@ </dt> <dd> <p> - For specifying settings like <tt>verbosity</tt> (how much output to - write to stderr) and <tt>depth</tt> (how much history is wanted in the + For specifying settings like <code>verbosity</code> (how much output to + write to stderr) and <code>depth</code> (how much history is wanted in the case of a shallow clone) that affect how other commands are carried out. </p> @@ -960,15 +958,15 @@ capability use this. It’s mandatory for <em>export</em>. </p> <div class="paragraph"><p>A helper advertising the capability -<tt>refspec refs/heads/*:refs/svn/origin/branches/*</tt> -is saying that, when it is asked to <tt>import refs/heads/topic</tt>, the -stream it outputs will update the <tt>refs/svn/origin/branches/topic</tt> +<code>refspec refs/heads/*:refs/svn/origin/branches/*</code> +is saying that, when it is asked to <code>import refs/heads/topic</code>, the +stream it outputs will update the <code>refs/svn/origin/branches/topic</code> ref.</p></div> <div class="paragraph"><p>This capability can be advertised multiple times. The first applicable refspec takes precedence. The left-hand of refspecs advertised with this capability must cover all refs reported by the list command. If no <em>refspec</em> capability is advertised, -there is an implied <tt>refspec *:*</tt>.</p></div> +there is an implied <code>refspec *:*</code>.</p></div> <div class="paragraph"><p>When writing remote-helpers for decentralized version control systems, it is advised to keep a local copy of the repository to interact with, and to let the private namespace refs point to this @@ -1130,11 +1128,11 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>push refs/heads/master:refs/heads/master +<pre><code>push refs/heads/master:refs/heads/master push HEAD:refs/heads/branch \n push +refs/heads/foo:refs/heads/bar -\n</tt></pre> +\n</code></pre> </div></div> <div class="paragraph"><p>Zero or more protocol options may be entered after the last <em>push</em> command, before the batch’s terminating blank line.</p></div>
diff --git a/gitrepository-layout.html b/gitrepository-layout.html index 7619876..51ad9ae 100644 --- a/gitrepository-layout.html +++ b/gitrepository-layout.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitrepository-layout(5)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -759,24 +757,24 @@ <div class="ulist"><ul> <li> <p> -a <tt>.git</tt> directory at the root of the working tree; +a <code>.git</code> directory at the root of the working tree; </p> </li> <li> <p> -a <tt><project>.git</tt> directory that is a <em>bare</em> repository +a <code><project>.git</code> directory that is a <em>bare</em> repository (i.e. without its own working tree), that is typically used for exchanging histories with others by pushing into it and fetching from it. </p> </li> </ul></div> -<div class="paragraph"><p><strong>Note</strong>: Also you can have a plain text file <tt>.git</tt> at the root of -your working tree, containing <tt>gitdir: <path></tt> to point at the real +<div class="paragraph"><p><strong>Note</strong>: Also you can have a plain text file <code>.git</code> at the root of +your working tree, containing <code>gitdir: <path></code> to point at the real directory that has the repository. This mechanism is often used for a working tree of a submodule checkout, to allow you in the -containing superproject to <tt>git checkout</tt> a branch that does not -have the submodule. The <tt>checkout</tt> has to remove the entire +containing superproject to <code>git checkout</code> a branch that does not +have the submodule. The <code>checkout</code> has to remove the entire submodule working tree, without losing the submodule repository.</p></div> <div class="paragraph"><p>These things may exist in a Git repository.</p></div> <div class="dlist"><dl> @@ -799,12 +797,12 @@ </li> <li> <p> -You could be using the <tt>objects/info/alternates</tt> or -<tt>$GIT_ALTERNATE_OBJECT_DIRECTORIES</tt> mechanisms to <em>borrow</em> +You could be using the <code>objects/info/alternates</code> or +<code>$GIT_ALTERNATE_OBJECT_DIRECTORIES</code> mechanisms to <em>borrow</em> objects from other object stores. A repository with this kind of incomplete object store is not suitable to be published for use with dumb transports but otherwise is OK as long as -<tt>objects/info/alternates</tt> points at the object stores it +<code>objects/info/alternates</code> points at the object stores it borrows from. </p> </li> @@ -818,7 +816,7 @@ A newly created object is stored in its own file. The objects are splayed over 256 subdirectories using the first two characters of the sha1 object name to - keep the number of directory entries in <tt>objects</tt> + keep the number of directory entries in <code>objects</code> itself to a manageable number. Objects found here are often called <em>unpacked</em> (or <em>loose</em>) objects. </p> @@ -849,7 +847,7 @@ <p> This file is to help dumb transports discover what packs are available in this object store. Whenever a pack is - added or removed, <tt>git update-server-info</tt> should be run + added or removed, <code>git update-server-info</code> should be run to keep this file up-to-date if the repository is published for dumb transports. <em>git repack</em> does this by default. @@ -893,15 +891,15 @@ </p> </dd> <dt class="hdlist1"> -refs/heads/<tt>name</tt> +refs/heads/<code>name</code> </dt> <dd> <p> - records tip-of-the-tree commit objects of branch <tt>name</tt> + records tip-of-the-tree commit objects of branch <code>name</code> </p> </dd> <dt class="hdlist1"> -refs/tags/<tt>name</tt> +refs/tags/<code>name</code> </dt> <dd> <p> @@ -910,7 +908,7 @@ </p> </dd> <dt class="hdlist1"> -refs/remotes/<tt>name</tt> +refs/remotes/<code>name</code> </dt> <dd> <p> @@ -919,11 +917,11 @@ </p> </dd> <dt class="hdlist1"> -refs/replace/<tt><obj-sha1></tt> +refs/replace/<code><obj-sha1></code> </dt> <dd> <p> - records the SHA-1 of the object that replaces <tt><obj-sha1></tt>. + records the SHA-1 of the object that replaces <code><obj-sha1></code>. This is similar to info/grafts and is internally used and maintained by <a href="git-replace.html">git-replace(1)</a>. Such refs can be exchanged between repositories while grafts are not. @@ -944,7 +942,7 @@ </dt> <dd> <p> - A symref (see glossary) to the <tt>refs/heads/</tt> namespace + A symref (see glossary) to the <code>refs/heads/</code> namespace describing the currently active branch. It does not mean much if the repository is not associated with any working tree (i.e. a <em>bare</em> repository), but a valid Git repository @@ -967,7 +965,7 @@ <p> A slightly deprecated way to store shorthands to be used to specify a URL to <em>git fetch</em>, <em>git pull</em> and <em>git push</em>. - A file can be stored as <tt>branches/<name></tt> and then + A file can be stored as <code>branches/<name></code> and then <em>name</em> can be given to these commands in place of <em>repository</em> argument. See the REMOTES section in <a href="git-fetch.html">git-fetch(1)</a> for details. This mechanism is legacy @@ -982,7 +980,7 @@ Hooks are customization scripts used by various Git commands. A handful of sample hooks are installed when <em>git init</em> is run, but all of them are disabled by - default. To enable, the <tt>.sample</tt> suffix has to be + default. To enable, the <code>.sample</code> suffix has to be removed from the filename by renaming. Read <a href="githooks.html">githooks(5)</a> for more details about each hook. @@ -1025,7 +1023,7 @@ published for dumb transports, this file should be regenerated by <em>git update-server-info</em> every time a tag or branch is created or modified. This is normally done - from the <tt>hooks/update</tt> hook, which is run by the + from the <code>hooks/update</code> hook, which is run by the <em>git-receive-pack</em> command when you <em>git push</em> into the repository. </p> @@ -1052,7 +1050,7 @@ <dd> <p> This file, by convention among Porcelains, stores the - exclude pattern list. <tt>.gitignore</tt> is the per-directory + exclude pattern list. <code>.gitignore</code> is the per-directory ignore file. <em>git status</em>, <em>git add</em>, <em>git rm</em> and <em>git clean</em> look at it but the core Git commands do not look at it. See also: <a href="gitignore.html">gitignore(5)</a>. @@ -1090,19 +1088,19 @@ </p> </dd> <dt class="hdlist1"> -logs/refs/heads/<tt>name</tt> +logs/refs/heads/<code>name</code> </dt> <dd> <p> - Records all changes made to the branch tip named <tt>name</tt>. + Records all changes made to the branch tip named <code>name</code>. </p> </dd> <dt class="hdlist1"> -logs/refs/tags/<tt>name</tt> +logs/refs/tags/<code>name</code> </dt> <dd> <p> - Records all changes made to the tag named <tt>name</tt>. + Records all changes made to the tag named <code>name</code>. </p> </dd> <dt class="hdlist1"> @@ -1110,8 +1108,8 @@ </dt> <dd> <p> - This is similar to <tt>info/grafts</tt> but is internally used - and maintained by shallow clone mechanism. See <tt>--depth</tt> + This is similar to <code>info/grafts</code> but is internally used + and maintained by shallow clone mechanism. See <code>--depth</code> option to <a href="git-clone.html">git-clone(1)</a> and <a href="git-fetch.html">git-fetch(1)</a>. </p> </dd>
diff --git a/gitrevisions.html b/gitrevisions.html index c72ddcc..aa365f0 100644 --- a/gitrevisions.html +++ b/gitrevisions.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitrevisions(7)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -791,7 +789,7 @@ </dt> <dd> <p> - Output from <tt>git describe</tt>; i.e. a closest tag, optionally + Output from <code>git describe</code>; i.e. a closest tag, optionally followed by a dash and a number of commits, followed by a dash, a <em>g</em>, and an abbreviated object name. </p> @@ -842,15 +840,15 @@ </p> <div class="paragraph"><p><em>HEAD</em> names the commit on which you based the changes in the working tree. <em>FETCH_HEAD</em> records the branch which you fetched from a remote repository -with your last <tt>git fetch</tt> invocation. +with your last <code>git fetch</code> invocation. <em>ORIG_HEAD</em> is created by commands that move your <em>HEAD</em> in a drastic way, to record the position of the <em>HEAD</em> before their operation, so that you can easily change the tip of the branch back to the state before you ran them. <em>MERGE_HEAD</em> records the commit(s) which you are merging into your branch -when you run <tt>git merge</tt>. +when you run <code>git merge</code>. <em>CHERRY_PICK_HEAD</em> records the commit which you are cherry-picking -when you run <tt>git cherry-pick</tt>.</p></div> +when you run <code>git cherry-pick</code>.</p></div> <div class="paragraph"><p>Note that any of the <em>refs/*</em> cases above may come either from the <em>$GIT_DIR/refs</em> directory or from the <em>$GIT_DIR/packed-refs</em> file. While the ref name encoding is unspecified, UTF-8 is preferred as @@ -923,8 +921,8 @@ <p> The suffix <em>@{upstream}</em> to a branchname (short form <em><branchname>@{u}</em>) refers to the branch that the branch specified by branchname is set to build on - top of (configured with <tt>branch.<name>.remote</tt> and - <tt>branch.<name>.merge</tt>). A missing branchname defaults to the + top of (configured with <code>branch.<name>.remote</code> and + <code>branch.<name>.merge</code>). A missing branchname defaults to the current one. </p> </dd> @@ -1052,7 +1050,7 @@ left-to-right.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>G H I J +<pre><code>G H I J \ / \ / D E F \ | / \ @@ -1061,11 +1059,11 @@ B C \ / \ / - A</tt></pre> + A</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>A = = A^0 +<pre><code>A = = A^0 B = A^ = A^1 = A~1 C = A^2 = A^2 D = A^^ = A^1^1 = A~2 @@ -1074,14 +1072,14 @@ G = A^^^ = A^1^1^1 = A~3 H = D^2 = B^^2 = A^^^2 = A~2^2 I = F^ = B^3^ = A^^3^ -J = F^2 = B^3^2 = A^^3^2</tt></pre> +J = F^2 = B^3^2 = A^^3^2</code></pre> </div></div> </div> </div> <div class="sect1"> <h2 id="_specifying_ranges">SPECIFYING RANGES</h2> <div class="sectionbody"> -<div class="paragraph"><p>History traversing commands such as <tt>git log</tt> operate on a set +<div class="paragraph"><p>History traversing commands such as <code>git log</code> operate on a set of commits, not just a single commit. To these commands, specifying a single revision with the notation described in the previous section means the set of commits reachable from that @@ -1173,7 +1171,7 @@ <div class="paragraph"><p>Here are a handful of examples:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>D G H D +<pre><code>D G H D D F G H I J D F ^G D H D ^D B E I J F B @@ -1183,7 +1181,7 @@ C I J F C C^@ I J F C^! C -F^! D G H D F</tt></pre> +F^! D G H D F</code></pre> </div></div> </div> </div>
diff --git a/gitweb.conf.html b/gitweb.conf.html index ad204e3..91c6536 100644 --- a/gitweb.conf.html +++ b/gitweb.conf.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitweb.conf(5)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -757,15 +755,15 @@ <div class="sectionbody"> <div class="paragraph"><p>The gitweb CGI script for viewing Git repositories over the web uses a perl script fragment as its configuration file. You can set variables -using "<tt>our $variable = value</tt>"; text from a "#" character until the +using "<code>our $variable = value</code>"; text from a "#" character until the end of a line is ignored. See <strong>perlsyn</strong>(1) for details.</p></div> <div class="paragraph"><p>An example:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt># gitweb configuration file for http://git.example.org +<pre><code># gitweb configuration file for http://git.example.org # our $projectroot = "/srv/git"; # FHS recommendation -our $site_name = 'Example.org >> Repos';</tt></pre> +our $site_name = 'Example.org >> Repos';</code></pre> </div></div> <div class="paragraph"><p>The configuration file is used to override the default settings that were built into gitweb at the time the <em>gitweb.cgi</em> script was generated.</p></div> @@ -810,16 +808,16 @@ <div class="paragraph"><p>Locations of the common system-wide configuration file, the fallback system-wide configuration file and the per-instance configuration file are defined at compile time using build-time Makefile configuration -variables, respectively <tt>GITWEB_CONFIG_COMMON</tt>, <tt>GITWEB_CONFIG_SYSTEM</tt> -and <tt>GITWEB_CONFIG</tt>.</p></div> +variables, respectively <code>GITWEB_CONFIG_COMMON</code>, <code>GITWEB_CONFIG_SYSTEM</code> +and <code>GITWEB_CONFIG</code>.</p></div> <div class="paragraph"><p>You can also override locations of gitweb configuration files during runtime by setting the following environment variables: -<tt>GITWEB_CONFIG_COMMON</tt>, <tt>GITWEB_CONFIG_SYSTEM</tt> and <tt>GITWEB_CONFIG</tt> +<code>GITWEB_CONFIG_COMMON</code>, <code>GITWEB_CONFIG_SYSTEM</code> and <code>GITWEB_CONFIG</code> to a non-empty value.</p></div> <div class="paragraph"><p>The syntax of the configuration files is that of Perl, since these files are handled by sourcing them as fragments of Perl code (the language that gitweb itself is written in). Variables are typically set using the -<tt>our</tt> qualifier (as in "<tt>our $variable = <value>;</tt>") to avoid syntax +<code>our</code> qualifier (as in "<code>our $variable = <value>;</code>") to avoid syntax errors if a new version of gitweb no longer uses a variable and therefore stops declaring it.</p></div> <div class="paragraph"><p>You can include other configuration file using read_config_file() @@ -829,7 +827,7 @@ <em>/etc/gitweb-gitolite.conf</em>. To include it, put</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>read_config_file("/etc/gitweb-gitolite.conf");</tt></pre> +<pre><code>read_config_file("/etc/gitweb-gitolite.conf");</code></pre> </div></div> <div class="paragraph"><p>somewhere in gitweb configuration file used, e.g. in per-installation gitweb configuration file. Note that read_config_file() checks itself @@ -839,7 +837,7 @@ perfectly well for some installations. Still, a configuration file is useful for customizing or tweaking the behavior of gitweb in many ways, and some optional features will not be present unless explicitly enabled using -the configurable <tt>%features</tt> variable (see also "Configuring gitweb +the configurable <code>%features</code> variable (see also "Configuring gitweb features" section below).</p></div> </div> </div> @@ -862,25 +860,25 @@ <dd> <p> Absolute filesystem path which will be prepended to project path; - the path to repository is <tt>$projectroot/$project</tt>. Set to - <tt>$GITWEB_PROJECTROOT</tt> during installation. This variable has to be + the path to repository is <code>$projectroot/$project</code>. Set to + <code>$GITWEB_PROJECTROOT</code> during installation. This variable has to be set correctly for gitweb to find repositories. </p> -<div class="paragraph"><p>For example, if <tt>$projectroot</tt> is set to "/srv/git" by putting the following +<div class="paragraph"><p>For example, if <code>$projectroot</code> is set to "/srv/git" by putting the following in gitweb config file:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>our $projectroot = "/srv/git";</tt></pre> +<pre><code>our $projectroot = "/srv/git";</code></pre> </div></div> <div class="paragraph"><p>then</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>http://git.example.com/gitweb.cgi?p=foo/bar.git</tt></pre> +<pre><code>http://git.example.com/gitweb.cgi?p=foo/bar.git</code></pre> </div></div> <div class="paragraph"><p>and its path_info based equivalent</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>http://git.example.com/gitweb.cgi/foo/bar.git</tt></pre> +<pre><code>http://git.example.com/gitweb.cgi/foo/bar.git</code></pre> </div></div> <div class="paragraph"><p>will map to the path <em>/srv/git/foo/bar.git</em> on the filesystem.</p></div> </dd> @@ -896,28 +894,28 @@ having the following format</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><URI-encoded filesystem path to repository> SP <URI-encoded repository owner></tt></pre> +<pre><code><URI-encoded filesystem path to repository> SP <URI-encoded repository owner></code></pre> </div></div> -<div class="paragraph"><p>The default value of this variable is determined by the <tt>GITWEB_LIST</tt> +<div class="paragraph"><p>The default value of this variable is determined by the <code>GITWEB_LIST</code> makefile variable at installation time. If this variable is empty, gitweb -will fall back to scanning the <tt>$projectroot</tt> directory for repositories.</p></div> +will fall back to scanning the <code>$projectroot</code> directory for repositories.</p></div> </dd> <dt class="hdlist1"> $project_maxdepth </dt> <dd> <p> - If <tt>$projects_list</tt> variable is unset, gitweb will recursively - scan filesystem for Git repositories. The <tt>$project_maxdepth</tt> - is used to limit traversing depth, relative to <tt>$projectroot</tt> + If <code>$projects_list</code> variable is unset, gitweb will recursively + scan filesystem for Git repositories. The <code>$project_maxdepth</code> + is used to limit traversing depth, relative to <code>$projectroot</code> (starting point); it means that directories which are further - from <tt>$projectroot</tt> than <tt>$project_maxdepth</tt> will be skipped. + from <code>$projectroot</code> than <code>$project_maxdepth</code> will be skipped. </p> <div class="paragraph"><p>It is purely performance optimization, originally intended for MacOS X, where recursive directory traversal is slow. Gitweb follows symbolic links, but it detects cycles, ignoring any duplicate files and directories.</p></div> <div class="paragraph"><p>The default value of this variable is determined by the build-time -configuration variable <tt>GITWEB_PROJECT_MAXDEPTH</tt>, which defaults to +configuration variable <code>GITWEB_PROJECT_MAXDEPTH</code>, which defaults to 2007.</p></div> </dd> <dt class="hdlist1"> @@ -927,9 +925,9 @@ <p> Show repository only if this file exists (in repository). Only effective if this variable evaluates to true. Can be set when - building gitweb by setting <tt>GITWEB_EXPORT_OK</tt>. This path is - relative to <tt>GIT_DIR</tt>. git-daemon[1] uses <em>git-daemon-export-ok</em>, - unless started with <tt>--export-all</tt>. By default this variable is + building gitweb by setting <code>GITWEB_EXPORT_OK</code>. This path is + relative to <code>GIT_DIR</code>. git-daemon[1] uses <em>git-daemon-export-ok</em>, + unless started with <code>--export-all</code>. By default this variable is not set, which means that this feature is turned off. </p> </dd> @@ -947,12 +945,12 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>our $export_auth_hook = sub { return -e "$_[0]/git-daemon-export-ok"; };</tt></pre> +<pre><code>our $export_auth_hook = sub { return -e "$_[0]/git-daemon-export-ok"; };</code></pre> </div></div> -<div class="paragraph"><p>though the above might be done by using <tt>$export_ok</tt> instead</p></div> +<div class="paragraph"><p>though the above might be done by using <code>$export_ok</code> instead</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>our $export_ok = "git-daemon-export-ok";</tt></pre> +<pre><code>our $export_ok = "git-daemon-export-ok";</code></pre> </div></div> <div class="paragraph"><p>If not set (default), it means that this feature is disabled.</p></div> <div class="paragraph"><p>See also more involved example in "Controlling access to Git repositories" @@ -964,11 +962,11 @@ <dd> <p> Only allow viewing of repositories also shown on the overview page. - This for example makes <tt>$gitweb_export_ok</tt> file decide if repository is - available and not only if it is shown. If <tt>$gitweb_list</tt> points to + This for example makes <code>$gitweb_export_ok</code> file decide if repository is + available and not only if it is shown. If <code>$gitweb_list</code> points to file with list of project, only those repositories listed would be available for gitweb. Can be set during building gitweb via - <tt>GITWEB_STRICT_EXPORT</tt>. By default this variable is not set, which + <code>GITWEB_STRICT_EXPORT</code>. By default this variable is not set, which means that you can directly access those repositories that are hidden from projects list page (e.g. the are not listed in the $projects_list file). @@ -986,8 +984,8 @@ </dt> <dd> <p> - Core git executable to use. By default set to <tt>$GIT_BINDIR/git</tt>, which - in turn is by default set to <tt>$(bindir)/git</tt>. If you use Git installed + Core git executable to use. By default set to <code>$GIT_BINDIR/git</code>, which + in turn is by default set to <code>$(bindir)/git</code>. If you use Git installed from a binary package, you should usually set this to "/usr/bin/git". This can just be "git" if your web server has a sensible PATH; from security point of view it is better to use absolute path to git binary. @@ -1022,19 +1020,19 @@ use syntax highlighting. </p> <div class="paragraph"><p><strong>NOTE</strong>: if you want to add support for new file type (supported by -"highlight" but not used by gitweb), you need to modify <tt>%highlight_ext</tt> -or <tt>%highlight_basename</tt>, depending on whether you detect type of file +"highlight" but not used by gitweb), you need to modify <code>%highlight_ext</code> +or <code>%highlight_basename</code>, depending on whether you detect type of file based on extension (for example "sh") or on its basename (for example "Makefile"). The keys of these hashes are extension and basename, respectively, and value for given key is name of syntax to be passed via -<tt>--syntax <syntax></tt> to highlighter.</p></div> +<code>--syntax <syntax></code> to highlighter.</p></div> <div class="paragraph"><p>For example if repositories you are hosting use "phtml" extension for PHP files, and you want to have correct syntax-highlighting for those files, you can add the following to gitweb configuration:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>our %highlight_ext; -$highlight_ext{'phtml'} = 'php';</tt></pre> +<pre><code>our %highlight_ext; +$highlight_ext{'phtml'} = 'php';</code></pre> </div></div> </dd> </dl></div> @@ -1044,7 +1042,7 @@ <div class="paragraph"><p>The configuration variables described below configure some of gitweb links: their target and their look (text or image), and where to find page prerequisites (stylesheet, favicon, images, scripts). Usually they are left -at their default values, with the possible exception of <tt>@stylesheets</tt> +at their default values, with the possible exception of <code>@stylesheets</code> variable.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> @@ -1056,21 +1054,21 @@ might specify more than one stylesheet, for example to use "gitweb.css" as base with site specific modifications in a separate stylesheet to make it easier to upgrade gitweb. For example, you can add - a <tt>site</tt> stylesheet by putting + a <code>site</code> stylesheet by putting </p> <div class="listingblock"> <div class="content"> -<pre><tt>push @stylesheets, "gitweb-site.css";</tt></pre> +<pre><code>push @stylesheets, "gitweb-site.css";</code></pre> </div></div> <div class="paragraph"><p>in the gitweb config file. Those values that are relative paths are relative to base URI of gitweb.</p></div> <div class="paragraph"><p>This list should contain the URI of gitweb’s standard stylesheet. The default -URI of gitweb stylesheet can be set at build time using the <tt>GITWEB_CSS</tt> +URI of gitweb stylesheet can be set at build time using the <code>GITWEB_CSS</code> makefile variable. Its default value is <em>static/gitweb.css</em> -(or <em>static/gitweb.min.css</em> if the <tt>CSSMIN</tt> variable is defined, +(or <em>static/gitweb.min.css</em> if the <code>CSSMIN</code> variable is defined, i.e. if CSS minifier is used during build).</p></div> -<div class="paragraph"><p><strong>Note</strong>: there is also a legacy <tt>$stylesheet</tt> configuration variable, which was -used by older gitweb. If <tt>$stylesheet</tt> variable is defined, only CSS stylesheet +<div class="paragraph"><p><strong>Note</strong>: there is also a legacy <code>$stylesheet</code> configuration variable, which was +used by older gitweb. If <code>$stylesheet</code> variable is defined, only CSS stylesheet given by this variable is used by gitweb.</p></div> </dd> <dt class="hdlist1"> @@ -1082,7 +1080,7 @@ server, or to be more the generic URI of logo, 72x27 size). This image is displayed in the top right corner of each gitweb page and used as a logo for the Atom feed. Relative to the base URI of gitweb (as a path). - Can be adjusted when building gitweb using <tt>GITWEB_LOGO</tt> variable + Can be adjusted when building gitweb using <code>GITWEB_LOGO</code> variable By default set to <em>static/git-logo.png</em>. </p> </dd> @@ -1096,7 +1094,7 @@ as "image/png" type. Web browsers that support favicons (website icons) may display them in the browser’s URL bar and next to the site name in bookmarks. Relative to the base URI of gitweb. Can be adjusted at - build time using <tt>GITWEB_FAVICON</tt> variable. + build time using <code>GITWEB_FAVICON</code> variable. By default set to <em>static/git-favicon.png</em>. </p> </dd> @@ -1108,10 +1106,10 @@ Points to the location where you put <em>gitweb.js</em> on your web server, or to be more generic the URI of JavaScript code used by gitweb. Relative to the base URI of gitweb. Can be set at build time using - the <tt>GITWEB_JS</tt> build-time configuration variable. + the <code>GITWEB_JS</code> build-time configuration variable. </p> <div class="paragraph"><p>The default value is either <em>static/gitweb.js</em>, or <em>static/gitweb.min.js</em> if -the <tt>JSMIN</tt> build variable was defined, i.e. if JavaScript minifier was used +the <code>JSMIN</code> build variable was defined, i.e. if JavaScript minifier was used at build time. <strong>Note</strong> that this single file is generated from multiple individual JavaScript "modules".</p></div> </dd> @@ -1122,7 +1120,7 @@ <p> Target of the home link on the top of all pages (the first part of view "breadcrumbs"). By default it is set to the absolute URI of a current page - (to the value of <tt>$my_uri</tt> variable, or to "/" if <tt>$my_uri</tt> is undefined + (to the value of <code>$my_uri</code> variable, or to "/" if <code>$my_uri</code> is undefined or is an empty string). </p> </dd> @@ -1131,11 +1129,11 @@ </dt> <dd> <p> - Label for the "home link" at the top of all pages, leading to <tt>$home_link</tt> + Label for the "home link" at the top of all pages, leading to <code>$home_link</code> (usually the main gitweb page, which contains the projects list). It is used as the first component of gitweb’s "breadcrumb trail": - <tt><home link> / <project> / <action></tt>. Can be set at build time using - the <tt>GITWEB_HOME_LINK_STR</tt> variable. By default it is set to "projects", + <code><home link> / <project> / <action></code>. Can be set at build time using + the <code>GITWEB_HOME_LINK_STR</code> variable. By default it is set to "projects", as this link leads to the list of projects. Another popular choice is to set it to the name of site. Note that it is treated as raw HTML so it should not be set from untrusted sources. @@ -1150,8 +1148,8 @@ the home link, to pages that are logically "above" the gitweb projects list, such as the organization and department which host the gitweb server. Each element of the list is a reference to an array, in which - element 0 is the link text (equivalent to <tt>$home_link_str</tt>) and element - 1 is the target URL (equivalent to <tt>$home_link</tt>). + element 0 is the link text (equivalent to <code>$home_link_str</code>) and element + 1 is the target URL (equivalent to <code>$home_link</code>). </p> <div class="paragraph"><p>For example, the following setting produces a breadcrumb trail like "home / dev / projects / …" where "projects" is the home link.</p></div> @@ -1159,10 +1157,10 @@ </dl></div> <div class="listingblock"> <div class="content"> -<pre><tt> our @extra_breadcrumbs = ( +<pre><code> our @extra_breadcrumbs = ( [ 'home' => 'https://www.example.org/' ], [ 'dev' => 'https://dev.example.org/' ], - );</tt></pre> + );</code></pre> </div></div> <div class="dlist"><dl> <dt class="hdlist1"> @@ -1195,12 +1193,12 @@ <p> Name of your site or organization, to appear in page titles. Set it to something descriptive for clearer bookmarks etc. If this variable - is not set or is, then gitweb uses the value of the <tt>SERVER_NAME</tt> + is not set or is, then gitweb uses the value of the <code>SERVER_NAME</code> CGI environment variable, setting site name to "$SERVER_NAME Git", or "Untitled Git" if this variable is not set (e.g. if running gitweb as standalone script). </p> -<div class="paragraph"><p>Can be set using the <tt>GITWEB_SITENAME</tt> at build time. Unset by default.</p></div> +<div class="paragraph"><p>Can be set using the <code>GITWEB_SITENAME</code> at build time. Unset by default.</p></div> </dd> <dt class="hdlist1"> $site_html_head_string @@ -1208,7 +1206,7 @@ <dd> <p> HTML snippet to be included in the <head> section of each page. - Can be set using <tt>GITWEB_SITE_HTML_HEAD_STRING</tt> at build time. + Can be set using <code>GITWEB_SITE_HTML_HEAD_STRING</code> at build time. No default value. </p> </dd> @@ -1219,7 +1217,7 @@ <p> Name of a file with HTML to be included at the top of each page. Relative to the directory containing the <em>gitweb.cgi</em> script. - Can be set using <tt>GITWEB_SITE_HEADER</tt> at build time. No default + Can be set using <code>GITWEB_SITE_HEADER</code> at build time. No default value. </p> </dd> @@ -1230,7 +1228,7 @@ <p> Name of a file with HTML to be included at the bottom of each page. Relative to the directory containing the <em>gitweb.cgi</em> script. - Can be set using <tt>GITWEB_SITE_FOOTER</tt> at build time. No default + Can be set using <code>GITWEB_SITE_FOOTER</code> at build time. No default value. </p> </dd> @@ -1242,7 +1240,7 @@ Name of a HTML file which, if it exists, is included on the gitweb projects overview page ("projects_list" view). Relative to the directory containing the gitweb.cgi script. Default value - can be adjusted during build time using <tt>GITWEB_HOMETEXT</tt> variable. + can be adjusted during build time using <code>GITWEB_HOMETEXT</code> variable. By default set to <em>indextext.html</em>. </p> </dd> @@ -1267,7 +1265,7 @@ means the ordering used if you don’t explicitly sort projects list (if there is no "o" CGI query parameter in the URL). Valid values are "none" (unsorted), "project" (projects are by project name, - i.e. path to repository relative to <tt>$projectroot</tt>), "descr" + i.e. path to repository relative to <code>$projectroot</code>), "descr" (project description), "owner", and "age" (by date of most current commit). </p> @@ -1287,7 +1285,7 @@ Default mimetype for the blob_plain (raw) view, if mimetype checking doesn’t result in some other type; by default "text/plain". Gitweb guesses mimetype of a file to display based on extension - of its filename, using <tt>$mimetypes_file</tt> (if set and file exists) + of its filename, using <code>$mimetypes_file</code> (if set and file exists) and <em>/etc/mime.types</em> files (see <strong>mime.types</strong>(5) manpage; only filename extension rules are supported by gitweb). </p> @@ -1331,7 +1329,7 @@ </div> <div class="sect2"> <h3 id="_some_optional_features_and_policies">Some optional features and policies</h3> -<div class="paragraph"><p>Most of features are configured via <tt>%feature</tt> hash; however some of extra +<div class="paragraph"><p>Most of features are configured via <code>%feature</code> hash; however some of extra gitweb features can be turned on and configured using variables described below. This list beside configuration variables that control how gitweb looks does contain variables configuring administrative side of gitweb @@ -1345,17 +1343,17 @@ <p> List of Git base URLs. These URLs are used to generate URLs describing from where to fetch a project, which are shown on - project summary page. The full fetch URL is "<tt>$git_base_url/$project</tt>", + project summary page. The full fetch URL is "<code>$git_base_url/$project</code>", for each element of this list. You can set up multiple base URLs - (for example one for <tt>git://</tt> protocol, and one for <tt>http://</tt> + (for example one for <code>git://</code> protocol, and one for <code>http://</code> protocol). </p> <div class="paragraph"><p>Note that per repository configuration can be set in <em>$GIT_DIR/cloneurl</em> -file, or as values of multi-value <tt>gitweb.url</tt> configuration variable in +file, or as values of multi-value <code>gitweb.url</code> configuration variable in project config. Per-repository configuration takes precedence over value -composed from <tt>@git_base_url_list</tt> elements and project name.</p></div> +composed from <code>@git_base_url_list</code> elements and project name.</p></div> <div class="paragraph"><p>You can setup one single value (single entry/item in this list) at build -time by setting the <tt>GITWEB_BASE_URL</tt> built-time configuration variable. +time by setting the <code>GITWEB_BASE_URL</code> built-time configuration variable. By default it is set to (), i.e. an empty list. This means that gitweb would not try to create project URL (to fetch) from project name.</p></div> </dd> @@ -1366,7 +1364,7 @@ <p> Whether to enables the grouping of projects by category on the project list page. The category of a project is determined by the - <tt>$GIT_DIR/category</tt> file or the <tt>gitweb.category</tt> variable in each + <code>$GIT_DIR/category</code> file or the <code>gitweb.category</code> variable in each repository’s configuration. Disabled by default (set to 0). </p> </dd> @@ -1378,7 +1376,7 @@ Default category for projects for which none is specified. If this is set to the empty string, such projects will remain uncategorized and listed at the top, above categorized projects. Used only if project - categories are enabled, which means if <tt>$projects_list_group_categories</tt> + categories are enabled, which means if <code>$projects_list_group_categories</code> is true. By default set to "" (empty string). </p> </dd> @@ -1406,7 +1404,7 @@ tasks on the system — processes that are actually running — averaged over the last minute. </p> -<div class="paragraph"><p>Set <tt>$maxload</tt> to undefined value (<tt>undef</tt>) to turn this feature off. +<div class="paragraph"><p>Set <code>$maxload</code> to undefined value (<code>undef</code>) to turn this feature off. The default value is 300.</p></div> </dd> <dt class="hdlist1"> @@ -1438,15 +1436,15 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>our $per_request_config = sub { +<pre><code>our $per_request_config = sub { $ENV{GL_USER} = $cgi->remote_user || "gitweb"; -};</tt></pre> +};</code></pre> </div></div> -<div class="paragraph"><p>If <tt>$per_request_config</tt> is not a code reference, it is interpreted as boolean +<div class="paragraph"><p>If <code>$per_request_config</code> is not a code reference, it is interpreted as boolean value. If it is true gitweb will process config files once per request, and if it is false gitweb will process config files only once, each time it is executed. True by default (set to 1).</p></div> -<div class="paragraph"><p><strong>NOTE</strong>: <tt>$my_url</tt>, <tt>$my_uri</tt>, and <tt>$base_url</tt> are overwritten with their default +<div class="paragraph"><p><strong>NOTE</strong>: <code>$my_url</code>, <code>$my_uri</code>, and <code>$base_url</code> are overwritten with their default values before every request, so if you want to change them, be sure to set this variable to true or a code reference effecting the desired changes.</p></div> <div class="paragraph"><p>This variable matters only when using persistent web environments that @@ -1472,7 +1470,7 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>our $version .= " with caching";</tt></pre> +<pre><code>our $version .= " with caching";</code></pre> </div></div> <div class="paragraph"><p>if you run modified version of gitweb with caching support. This variable is purely informational, used e.g. in the "generator" meta header in HTML @@ -1489,7 +1487,7 @@ Full URL and absolute URL of the gitweb script; in earlier versions of gitweb you might have need to set those variables, but now there should be no need to do it. See - <tt>$per_request_config</tt> if you need to set them still. + <code>$per_request_config</code> if you need to set them still. </p> </dd> <dt class="hdlist1"> @@ -1498,11 +1496,11 @@ <dd> <p> Base URL for relative URLs in pages generated by gitweb, - (e.g. <tt>$logo</tt>, <tt>$favicon</tt>, <tt>@stylesheets</tt> if they are relative URLs), + (e.g. <code>$logo</code>, <code>$favicon</code>, <code>@stylesheets</code> if they are relative URLs), needed and used <em><base href="$base_url"></em> only for URLs with nonempty PATH_INFO. Usually gitweb sets its value correctly, and there is no need to set this variable, e.g. to $my_uri or "/". - See <tt>$per_request_config</tt> if you need to override it anyway. + See <code>$per_request_config</code> if you need to override it anyway. </p> </dd> </dl></div> @@ -1513,26 +1511,26 @@ <h2 id="_configuring_gitweb_features">CONFIGURING GITWEB FEATURES</h2> <div class="sectionbody"> <div class="paragraph"><p>Many gitweb features can be enabled (or disabled) and configured using the -<tt>%feature</tt> hash. Names of gitweb features are keys of this hash.</p></div> -<div class="paragraph"><p>Each <tt>%feature</tt> hash element is a hash reference and has the following +<code>%feature</code> hash. Names of gitweb features are keys of this hash.</p></div> +<div class="paragraph"><p>Each <code>%feature</code> hash element is a hash reference and has the following structure:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>"<feature_name>" => { +<pre><code>"<feature_name>" => { "sub" => <feature-sub (subroutine)>, "override" => <allow-override (boolean)>, "default" => [ <options>... ] -},</tt></pre> +},</code></pre> </div></div> <div class="paragraph"><p>Some features cannot be overridden per project. For those -features the structure of appropriate <tt>%feature</tt> hash element has a simpler +features the structure of appropriate <code>%feature</code> hash element has a simpler form:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>"<feature_name>" => { +<pre><code>"<feature_name>" => { "override" => 0, "default" => [ <options>... ] -},</tt></pre> +},</code></pre> </div></div> <div class="paragraph"><p>As one can see it lacks the 'sub' element.</p></div> <div class="paragraph"><p>The meaning of each part of feature configuration is described @@ -1549,11 +1547,11 @@ <div class="paragraph"><p>Note that it is currently <strong>always</strong> an array reference, even if feature doesn’t accept any configuration parameters, and 'default' is used only to turn it on or off. In such case you turn feature on -by setting this element to <tt>[1]</tt>, and torn it off by setting it to -<tt>[0]</tt>. See also the passage about the "blame" feature in the "Examples" +by setting this element to <code>[1]</code>, and torn it off by setting it to +<code>[0]</code>. See also the passage about the "blame" feature in the "Examples" section.</p></div> <div class="paragraph"><p>To disable features that accept parameters (are configurable), you -need to set this element to empty list i.e. <tt>[]</tt>.</p></div> +need to set this element to empty list i.e. <code>[]</code>.</p></div> </dd> <dt class="hdlist1"> override @@ -1564,7 +1562,7 @@ overridable, which means that it can be configured (or enabled/disabled) on a per-repository basis. </p> -<div class="paragraph"><p>Usually given "<feature>" is configurable via the <tt>gitweb.<feature></tt> +<div class="paragraph"><p>Usually given "<feature>" is configurable via the <code>gitweb.<feature></code> config variable in the per-repository Git configuration file.</p></div> <div class="paragraph"><p><strong>Note</strong> that no feature is overridable by default.</p></div> </dd> @@ -1581,8 +1579,8 @@ </dd> </dl></div> <div class="sect2"> -<h3 id="_features_in_tt_feature_tt">Features in <tt>%feature</tt></h3> -<div class="paragraph"><p>The gitweb features that are configurable via <tt>%feature</tt> hash are listed +<h3 id="_features_in_code_feature_code">Features in <code>%feature</code></h3> +<div class="paragraph"><p>The gitweb features that are configurable via <code>%feature</code> hash are listed below. This should be a complete list, but ultimately the authoritative and complete list is in gitweb.cgi source code, with features described in the comments.</p></div> @@ -1597,7 +1595,7 @@ This can be very CPU-intensive and is therefore disabled by default. </p> <div class="paragraph"><p>This feature can be configured on a per-repository basis via -repository’s <tt>gitweb.blame</tt> configuration variable (boolean).</p></div> +repository’s <code>gitweb.blame</code> configuration variable (boolean).</p></div> </dd> <dt class="hdlist1"> snapshot @@ -1610,12 +1608,12 @@ This can potentially generate high traffic if you have large project. </p> <div class="paragraph"><p>The value of 'default' is a list of names of snapshot formats, -defined in <tt>%known_snapshot_formats</tt> hash, that you wish to offer. +defined in <code>%known_snapshot_formats</code> hash, that you wish to offer. Supported formats include "tgz", "tbz2", "txz" (gzip/bzip2/xz compressed tar archive) and "zip"; please consult gitweb sources for a definitive list. By default only "tgz" is offered.</p></div> <div class="paragraph"><p>This feature can be configured on a per-repository basis via -repository’s <tt>gitweb.blame</tt> configuration variable, which contains +repository’s <code>gitweb.blame</code> configuration variable, which contains a comma separated list of formats or "none" to disable snapshots. Unknown values are ignored.</p></div> </dd> @@ -1629,7 +1627,7 @@ This can be potentially CPU-intensive, of course. Enabled by default. </p> <div class="paragraph"><p>This feature can be configured on a per-repository basis via -repository’s <tt>gitweb.grep</tt> configuration variable (boolean).</p></div> +repository’s <code>gitweb.grep</code> configuration variable (boolean).</p></div> </dd> <dt class="hdlist1"> pickaxe @@ -1642,10 +1640,10 @@ still potentially CPU-intensive. Enabled by default. </p> <div class="paragraph"><p>The pickaxe search is described in <a href="git-log.html">git-log(1)</a> (the -description of <tt>-S<string></tt> option, which refers to pickaxe entry in +description of <code>-S<string></code> option, which refers to pickaxe entry in <a href="gitdiffcore.html">gitdiffcore(7)</a> for more details).</p></div> <div class="paragraph"><p>This feature can be configured on a per-repository basis by setting -repository’s <tt>gitweb.pickaxe</tt> configuration variable (boolean).</p></div> +repository’s <code>gitweb.pickaxe</code> configuration variable (boolean).</p></div> </dd> <dt class="hdlist1"> show-sizes @@ -1653,12 +1651,12 @@ <dd> <p> Enable showing size of blobs (ordinary files) in a "tree" view, in a - separate column, similar to what <tt>ls -l</tt> does; see description of - <tt>-l</tt> option in <a href="git-ls-tree.html">git-ls-tree(1)</a> manpage. This costs a bit of + separate column, similar to what <code>ls -l</code> does; see description of + <code>-l</code> option in <a href="git-ls-tree.html">git-ls-tree(1)</a> manpage. This costs a bit of I/O. Enabled by default. </p> <div class="paragraph"><p>This feature can be configured on a per-repository basis via -repository’s <tt>gitweb.showsizes</tt> configuration variable (boolean).</p></div> +repository’s <code>gitweb.showsizes</code> configuration variable (boolean).</p></div> </dd> <dt class="hdlist1"> patches @@ -1674,7 +1672,7 @@ Default value is 16. </p> <div class="paragraph"><p>This feature can be configured on a per-repository basis via -repository’s <tt>gitweb.patches</tt> configuration variable (integer).</p></div> +repository’s <code>gitweb.patches</code> configuration variable (integer).</p></div> </dd> <dt class="hdlist1"> avatar @@ -1691,12 +1689,12 @@ <strong>Note</strong> that some providers might require extra Perl packages to be installed; see <em>gitweb/INSTALL</em> for more details.</p></div> <div class="paragraph"><p>This feature can be configured on a per-repository basis via -repository’s <tt>gitweb.avatar</tt> configuration variable.</p></div> -<div class="paragraph"><p>See also <tt>%avatar_size</tt> with pixel sizes for icons and avatars +repository’s <code>gitweb.avatar</code> configuration variable.</p></div> +<div class="paragraph"><p>See also <code>%avatar_size</code> with pixel sizes for icons and avatars ("default" is used for one-line like "log" and "shortlog", "double" is used for two-line like "commit", "commitdiff" or "tag"). If the default font sizes or lineheights are changed (e.g. via adding extra -CSS stylesheet in <tt>@stylesheets</tt>), it may be appropriate to change +CSS stylesheet in <code>@stylesheets</code>), it may be appropriate to change these values.</p></div> </dd> <dt class="hdlist1"> @@ -1705,12 +1703,12 @@ <dd> <p> Server-side syntax highlight support in "blob" view. It requires - <tt>$highlight_bin</tt> program to be available (see the description of + <code>$highlight_bin</code> program to be available (see the description of this variable in the "Configuration variables" section above), and therefore is disabled by default. </p> <div class="paragraph"><p>This feature can be configured on a per-repository basis via -repository’s <tt>gitweb.highlight</tt> configuration variable (boolean).</p></div> +repository’s <code>gitweb.highlight</code> configuration variable (boolean).</p></div> </dd> <dt class="hdlist1"> remote_heads @@ -1724,7 +1722,7 @@ to browse local repositories, enables and uses this feature. </p> <div class="paragraph"><p>This feature can be configured on a per-repository basis via -repository’s <tt>gitweb.remote_heads</tt> configuration variable (boolean).</p></div> +repository’s <code>gitweb.remote_heads</code> configuration variable (boolean).</p></div> </dd> </dl></div> <div class="paragraph"><p>The remaining features cannot be overridden on a per project basis.</p></div> @@ -1736,7 +1734,7 @@ <p> Enable text search, which will list the commits which match author, committer or commit text to a given string; see the description of - <tt>--author</tt>, <tt>--committer</tt> and <tt>--grep</tt> options in <a href="git-log.html">git-log(1)</a> + <code>--author</code>, <code>--committer</code> and <code>--grep</code> options in <a href="git-log.html">git-log(1)</a> manpage. Enabled by default. </p> <div class="paragraph"><p>Project specific override is not supported.</p></div> @@ -1748,14 +1746,14 @@ <p> If this feature is enabled, gitweb considers projects in subdirectories of project root (basename) to be forks of existing - projects. For each project <tt>$projname.git</tt>, projects in the - <tt>$projname/</tt> directory and its subdirectories will not be + projects. For each project <code>$projname.git</code>, projects in the + <code>$projname/</code> directory and its subdirectories will not be shown in the main projects list. Instead, a '+' mark is shown - next to <tt>$projname</tt>, which links to a "forks" view that lists all - the forks (all projects in <tt>$projname/</tt> subdirectory). Additionally + next to <code>$projname</code>, which links to a "forks" view that lists all + the forks (all projects in <code>$projname/</code> subdirectory). Additionally a "forks" view for a project is linked from project summary page. </p> -<div class="paragraph"><p>If the project list is taken from a file (<tt>$projects_list</tt> points to a +<div class="paragraph"><p>If the project list is taken from a file (<code>$projects_list</code> points to a file), forks are only recognized if they are listed after the main project in that file.</p></div> <div class="paragraph"><p>Project specific override is not supported.</p></div> @@ -1770,9 +1768,9 @@ </p> <div class="paragraph"><p>The "default" value consists of a list of triplets in the form ‘("<label>", "<link>", "<position>")` where "position" is the label -after which to insert the link, "link" is a format string where <tt>%n</tt> -expands to the project name, <tt>%f</tt> to the project path within the -filesystem (i.e. "$projectroot/$project"), <tt>%h</tt> to the current hash +after which to insert the link, "link" is a format string where <code>%n</code> +expands to the project name, <code>%f</code> to the project path within the +filesystem (i.e. "$projectroot/$project"), <code>%h</code> to the current hash ('h’ gitweb parameter) and ‘%b` to the current hash base ('hb’ gitweb parameter); ‘%%` expands to '%’.</p></div> <div class="paragraph"><p>For example, at the time this page was written, the <a href="http://repo.or.cz">http://repo.or.cz</a> @@ -1780,11 +1778,11 @@ (using the third party tool <strong>git-browser</strong>):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$feature{'actions'}{'default'} = - [ ('graphiclog', '/git-browser/by-commit.html?r=%n', 'summary')];</tt></pre> +<pre><code>$feature{'actions'}{'default'} = + [ ('graphiclog', '/git-browser/by-commit.html?r=%n', 'summary')];</code></pre> </div></div> <div class="paragraph"><p>This adds a link titled "graphiclog" after the "summary" link, leading to -<tt>git-browser</tt> script, passing <tt>r=<project></tt> as a query parameter.</p></div> +<code>git-browser</code> script, passing <code>r=<project></code> as a query parameter.</p></div> <div class="paragraph"><p>Project specific override is not supported.</p></div> </dd> <dt class="hdlist1"> @@ -1813,12 +1811,12 @@ hasn’t selected some other time zone and saved it in a cookie), a name of cookie where to store selected time zone, and a CSS class used to mark up dates for manipulation. If you want to turn this feature off, set "default" -to empty list: <tt>[]</tt>.</p></div> +to empty list: <code>[]</code>.</p></div> <div class="paragraph"><p>Typical gitweb config files will only change starting (default) time zone, and leave other elements at their default values:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$feature{'javascript-timezone'}{'default'}[0] = "utc";</tt></pre> +<pre><code>$feature{'javascript-timezone'}{'default'}[0] = "utc";</code></pre> </div></div> <div class="paragraph"><p>The example configuration presented here is guaranteed to be backwards and forward compatible.</p></div> @@ -1842,26 +1840,26 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt>$feature{'extra-branch-refs'}{'default'} = - ['sandbox', 'wip', 'other'];</tt></pre> +<pre><code>$feature{'extra-branch-refs'}{'default'} = + ['sandbox', 'wip', 'other'];</code></pre> </div></div> <div class="paragraph"><p>This feature can be configured on per-repository basis after setting $feature{<em>extra-branch-refs</em>}{<em>override</em>} to true, via repository’s -<tt>gitweb.extraBranchRefs</tt> configuration variable, which contains a +<code>gitweb.extraBranchRefs</code> configuration variable, which contains a space separated list of refs. An example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[gitweb] - extraBranchRefs = sandbox wip other</tt></pre> +<pre><code>[gitweb] + extraBranchRefs = sandbox wip other</code></pre> </div></div> <div class="paragraph"><p>The gitweb.extraBranchRefs is actually a multi-valued configuration variable, so following example is also correct and the result is the same as of the snippet above:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>[gitweb] +<pre><code>[gitweb] extraBranchRefs = sandbox - extraBranchRefs = wip other</tt></pre> + extraBranchRefs = wip other</code></pre> </div></div> <div class="paragraph"><p>It is an error to specify a ref that does not pass "git check-ref-format" scrutiny. Duplicated values are filtered.</p></div> @@ -1878,18 +1876,18 @@ the following in your GITWEB_CONFIG file:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$feature{'blame'}{'default'} = [1]; -$feature{'blame'}{'override'} = 1;</tt></pre> +<pre><code>$feature{'blame'}{'default'} = [1]; +$feature{'blame'}{'override'} = 1;</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$feature{'pickaxe'}{'default'} = [1]; -$feature{'pickaxe'}{'override'} = 1;</tt></pre> +<pre><code>$feature{'pickaxe'}{'default'} = [1]; +$feature{'pickaxe'}{'override'} = 1;</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$feature{'snapshot'}{'default'} = ['zip', 'tgz']; -$feature{'snapshot'}{'override'} = 1;</tt></pre> +<pre><code>$feature{'snapshot'}{'default'} = ['zip', 'tgz']; +$feature{'snapshot'}{'override'} = 1;</code></pre> </div></div> <div class="paragraph"><p>If you allow overriding for the snapshot feature, you can specify which snapshot formats are globally disabled. You can also add any command-line @@ -1898,8 +1896,8 @@ adding the following lines to your gitweb configuration file:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$known_snapshot_formats{'zip'}{'disabled'} = 1; -$known_snapshot_formats{'tgz'}{'compressor'} = ['gzip','-6'];</tt></pre> +<pre><code>$known_snapshot_formats{'zip'}{'disabled'} = 1; +$known_snapshot_formats{'tgz'}{'compressor'} = ['gzip','-6'];</code></pre> </div></div> </div> </div> @@ -1907,7 +1905,7 @@ <h2 id="_bugs">BUGS</h2> <div class="sectionbody"> <div class="paragraph"><p>Debugging would be easier if the fallback configuration file -(<tt>/etc/gitweb.conf</tt>) and environment variable to override its location +(<code>/etc/gitweb.conf</code>) and environment variable to override its location (<em>GITWEB_CONFIG_SYSTEM</em>) had names reflecting their "fallback" role. The current names are kept to avoid breaking working setups.</p></div> </div>
diff --git a/gitweb.html b/gitweb.html index eac806c..0c942eb 100644 --- a/gitweb.html +++ b/gitweb.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitweb(1)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -823,24 +821,24 @@ projects' root" subsection).</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>our $projectroot = '/path/to/parent/directory';</tt></pre> +<pre><code>our $projectroot = '/path/to/parent/directory';</code></pre> </div></div> -<div class="paragraph"><p>The default value for <tt>$projectroot</tt> is <em>/pub/git</em>. You can change it during -building gitweb via <tt>GITWEB_PROJECTROOT</tt> build configuration variable.</p></div> -<div class="paragraph"><p>By default all Git repositories under <tt>$projectroot</tt> are visible and available +<div class="paragraph"><p>The default value for <code>$projectroot</code> is <em>/pub/git</em>. You can change it during +building gitweb via <code>GITWEB_PROJECTROOT</code> build configuration variable.</p></div> +<div class="paragraph"><p>By default all Git repositories under <code>$projectroot</code> are visible and available to gitweb. The list of projects is generated by default by scanning the -<tt>$projectroot</tt> directory for Git repositories (for object databases to be +<code>$projectroot</code> directory for Git repositories (for object databases to be more exact; gitweb is not interested in a working area, and is best suited to showing "bare" repositories).</p></div> -<div class="paragraph"><p>The name of the repository in gitweb is the path to its <tt>$GIT_DIR</tt> (its object -database) relative to <tt>$projectroot</tt>. Therefore the repository $repo can be +<div class="paragraph"><p>The name of the repository in gitweb is the path to its <code>$GIT_DIR</code> (its object +database) relative to <code>$projectroot</code>. Therefore the repository $repo can be found at "$projectroot/$repo".</p></div> </div> <div class="sect2"> <h3 id="_projects_list_file_format">Projects list file format</h3> <div class="paragraph"><p>Instead of having gitweb find repositories by scanning filesystem starting from $projectroot, you can provide a pre-generated list of -visible projects by setting <tt>$projects_list</tt> to point to a plain text +visible projects by setting <code>$projects_list</code> to point to a plain text file with a list of projects (with some additional info).</p></div> <div class="paragraph"><p>This file uses the following format:</p></div> <div class="ulist"><ul> @@ -858,7 +856,7 @@ <li> <p> Whitespace separated fields; any run of whitespace can be used as field -separator (rules for Perl’s "<tt>split(" ", $line)</tt>"). +separator (rules for Perl’s "<code>split(" ", $line)</code>"). </p> </li> <li> @@ -883,7 +881,7 @@ </dt> <dd> <p> - path to repository GIT_DIR, relative to <tt>$projectroot</tt> + path to repository GIT_DIR, relative to <code>$projectroot</code> </p> </dd> <dt class="hdlist1"> @@ -904,14 +902,14 @@ <div class="paragraph"><p>Example contents:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>foo.git Joe+R+Hacker+<joe@example.com> -foo/bar.git O+W+Ner+<owner@example.org></tt></pre> +<pre><code>foo.git Joe+R+Hacker+<joe@example.com> +foo/bar.git O+W+Ner+<owner@example.org></code></pre> </div></div> <div class="paragraph"><p>By default this file controls only which projects are <strong>visible</strong> on projects list page (note that entries that do not point to correctly recognized Git repositories won’t be displayed by gitweb). Even if a project is not visible on projects list page, you can view it nevertheless by hand-crafting -a gitweb URL. By setting <tt>$strict_export</tt> configuration variable (see +a gitweb URL. By setting <code>$strict_export</code> configuration variable (see <a href="gitweb.conf.html">gitweb.conf(5)</a>) to true value you can allow viewing only of repositories also shown on the overview page (i.e. only projects explicitly listed in projects list file will be accessible).</p></div> @@ -922,15 +920,15 @@ <em>gitweb_config.perl</em>. Put the following in <em>gitweb_make_index.perl</em> file:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>read_config_file("gitweb_config.perl"); -$projects_list = $projectroot;</tt></pre> +<pre><code>read_config_file("gitweb_config.perl"); +$projects_list = $projectroot;</code></pre> </div></div> <div class="paragraph"><p>Then create the following script to get list of project in the format suitable for GITWEB_LIST build configuration variable (or -<tt>$projects_list</tt> variable in gitweb config):</p></div> +<code>$projects_list</code> variable in gitweb config):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>#!/bin/sh +<pre><code>#!/bin/sh export GITWEB_CONFIG="gitweb_make_index.perl" export GATEWAY_INTERFACE="CGI/1.1" @@ -938,15 +936,15 @@ export REQUEST_METHOD="GET" export QUERY_STRING="a=project_index" -perl -- /var/www/cgi-bin/gitweb.cgi</tt></pre> +perl -- /var/www/cgi-bin/gitweb.cgi</code></pre> </div></div> <div class="paragraph"><p>Run this script and save its output to a file. This file could then be used -as projects list file, which means that you can set <tt>$projects_list</tt> to its +as projects list file, which means that you can set <code>$projects_list</code> to its filename.</p></div> </div> <div class="sect2"> <h3 id="_controlling_access_to_git_repositories">Controlling access to Git repositories</h3> -<div class="paragraph"><p>By default all Git repositories under <tt>$projectroot</tt> are visible and +<div class="paragraph"><p>By default all Git repositories under <code>$projectroot</code> are visible and available to gitweb. You can however configure how gitweb controls access to repositories.</p></div> <div class="ulist"><ul> @@ -954,28 +952,28 @@ <p> As described in "Projects list file format" section, you can control which projects are <strong>visible</strong> by selectively including repositories in projects -list file, and setting <tt>$projects_list</tt> gitweb configuration variable to -point to it. With <tt>$strict_export</tt> set, projects list file can be used to +list file, and setting <code>$projects_list</code> gitweb configuration variable to +point to it. With <code>$strict_export</code> set, projects list file can be used to control which repositories are <strong>available</strong> as well. </p> </li> <li> <p> You can configure gitweb to only list and allow viewing of the explicitly -exported repositories, via <tt>$export_ok</tt> variable in gitweb config file; see +exported repositories, via <code>$export_ok</code> variable in gitweb config file; see <a href="gitweb.conf.html">gitweb.conf(5)</a> manpage. If it evaluates to true, gitweb shows -repositories only if this file named by <tt>$export_ok</tt> exists in its object -database (if directory has the magic file named <tt>$export_ok</tt>). +repositories only if this file named by <code>$export_ok</code> exists in its object +database (if directory has the magic file named <code>$export_ok</code>). </p> -<div class="paragraph"><p>For example <a href="git-daemon.html">git-daemon(1)</a> by default (unless <tt>--export-all</tt> option +<div class="paragraph"><p>For example <a href="git-daemon.html">git-daemon(1)</a> by default (unless <code>--export-all</code> option is used) allows pulling only for those repositories that have <em>git-daemon-export-ok</em> file. Adding</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>our $export_ok = "git-daemon-export-ok";</tt></pre> +<pre><code>our $export_ok = "git-daemon-export-ok";</code></pre> </div></div> <div class="paragraph"><p>makes gitweb show and allow access only to those repositories that can be -fetched from via <tt>git://</tt> protocol.</p></div> +fetched from via <code>git://</code> protocol.</p></div> </li> <li> <p> @@ -990,7 +988,7 @@ authorized to read the files:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$export_auth_hook = sub { +<pre><code>$export_auth_hook = sub { use Apache2::SubRequest (); use Apache2::Const -compile => qw(HTTP_OK); my $path = "$_[0]/HEAD"; @@ -998,7 +996,7 @@ my $sub = $r->lookup_file($path); return $sub->filename eq $path && $sub->status == Apache2::Const::HTTP_OK; -};</tt></pre> +};</code></pre> </div></div> </li> </ul></div> @@ -1016,59 +1014,59 @@ <dd> <p> A html file (HTML fragment) which is included on the gitweb project - "summary" page inside <tt><div></tt> block element. You can use it for longer + "summary" page inside <code><div></code> block element. You can use it for longer description of a project, to provide links (for example to project’s homepage), etc. This is recognized only if XSS prevention is off - (<tt>$prevent_xss</tt> is false, see <a href="gitweb.conf.html">gitweb.conf(5)</a>); a way to include + (<code>$prevent_xss</code> is false, see <a href="gitweb.conf.html">gitweb.conf(5)</a>); a way to include a README safely when XSS prevention is on may be worked out in the future. </p> </dd> <dt class="hdlist1"> -description (or <tt>gitweb.description</tt>) +description (or <code>gitweb.description</code>) </dt> <dd> <p> - Short (shortened to <tt>$projects_list_description_width</tt> in the projects + Short (shortened to <code>$projects_list_description_width</code> in the projects list page, which is 25 characters by default; see <a href="gitweb.conf.html">gitweb.conf(5)</a>) single line description of a project (of a repository). Plain text file; HTML will be escaped. By default set to </p> <div class="listingblock"> <div class="content"> -<pre><tt>Unnamed repository; edit this file to name it for gitweb.</tt></pre> +<pre><code>Unnamed repository; edit this file to name it for gitweb.</code></pre> </div></div> <div class="paragraph"><p>from the template during repository creation, usually installed in -<em>/usr/share/git-core/templates/</em>. You can use the <tt>gitweb.description</tt> repo +<em>/usr/share/git-core/templates/</em>. You can use the <code>gitweb.description</code> repo configuration variable, but the file takes precedence.</p></div> </dd> <dt class="hdlist1"> -category (or <tt>gitweb.category</tt>) +category (or <code>gitweb.category</code>) </dt> <dd> <p> Singe line category of a project, used to group projects if - <tt>$projects_list_group_categories</tt> is enabled. By default (file and + <code>$projects_list_group_categories</code> is enabled. By default (file and configuration variable absent), uncategorized projects are put in the - <tt>$project_list_default_category</tt> category. You can use the - <tt>gitweb.category</tt> repo configuration variable, but the file takes + <code>$project_list_default_category</code> category. You can use the + <code>gitweb.category</code> repo configuration variable, but the file takes precedence. </p> -<div class="paragraph"><p>The configuration variables <tt>$projects_list_group_categories</tt> and -<tt>$project_list_default_category</tt> are described in <a href="gitweb.conf.html">gitweb.conf(5)</a></p></div> +<div class="paragraph"><p>The configuration variables <code>$projects_list_group_categories</code> and +<code>$project_list_default_category</code> are described in <a href="gitweb.conf.html">gitweb.conf(5)</a></p></div> </dd> <dt class="hdlist1"> -cloneurl (or multiple-valued <tt>gitweb.url</tt>) +cloneurl (or multiple-valued <code>gitweb.url</code>) </dt> <dd> <p> File with repository URL (used for clone and fetch), one per line. Displayed in the project summary page. You can use multiple-valued - <tt>gitweb.url</tt> repository configuration variable for that, but the file + <code>gitweb.url</code> repository configuration variable for that, but the file takes precedence. </p> <div class="paragraph"><p>This is per-repository enhancement / version of global prefix-based -<tt>@git_base_url_list</tt> gitweb configuration variable (see +<code>@git_base_url_list</code> gitweb configuration variable (see <a href="gitweb.conf.html">gitweb.conf(5)</a>).</p></div> </dd> <dt class="hdlist1"> @@ -1076,22 +1074,22 @@ </dt> <dd> <p> - You can use the <tt>gitweb.owner</tt> repository configuration variable to set + You can use the <code>gitweb.owner</code> repository configuration variable to set repository’s owner. It is displayed in the project list and summary page. </p> <div class="paragraph"><p>If it’s not set, filesystem directory’s owner is used (via GECOS field, -i.e. real name field from <strong>getpwuid</strong>(3)) if <tt>$projects_list</tt> is unset -(gitweb scans <tt>$projectroot</tt> for repositories); if <tt>$projects_list</tt> +i.e. real name field from <strong>getpwuid</strong>(3)) if <code>$projects_list</code> is unset +(gitweb scans <code>$projectroot</code> for repositories); if <code>$projects_list</code> points to file with list of repositories, then project owner defaults to value from this file for given repository.</p></div> </dd> <dt class="hdlist1"> -various <tt>gitweb.*</tt> config variables (in config) +various <code>gitweb.*</code> config variables (in config) </dt> <dd> <p> - Read description of <tt>%feature</tt> hash for detailed list, and descriptions. + Read description of <code>%feature</code> hash for detailed list, and descriptions. See also "Configuring gitweb features" section in <a href="gitweb.conf.html">gitweb.conf(5)</a> </p> </dd> @@ -1107,7 +1105,7 @@ five components:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>.../gitweb.cgi/<repo>/<action>/<revision>:/<path>?<arguments></tt></pre> +<pre><code>.../gitweb.cgi/<repo>/<action>/<revision>:/<path>?<arguments></code></pre> </div></div> <div class="dlist"><dl> <dt class="hdlist1"> @@ -1160,7 +1158,7 @@ looks like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>.../gitweb.cgi/<repo>/<action>/<revision_from>:/<path_from>..<revision_to>:/<path_to>?<arguments></tt></pre> +<pre><code>.../gitweb.cgi/<repo>/<action>/<revision_from>:/<path_from>..<revision_to>:/<path_to>?<arguments></code></pre> </div></div> <div class="paragraph"><p>Each action is implemented as a subroutine, and must be present in %actions hash. Some actions are disabled by default, and must be turned on via feature @@ -1168,7 +1166,7 @@ configuration file:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$feature{'blame'}{'default'} = [1];</tt></pre> +<pre><code>$feature{'blame'}{'default'} = [1];</code></pre> </div></div> <div class="sect2"> <h3 id="_actions">Actions:</h3> @@ -1330,8 +1328,8 @@ <h2 id="_webserver_configuration">WEBSERVER CONFIGURATION</h2> <div class="sectionbody"> <div class="paragraph"><p>This section explains how to configure some common webservers to run gitweb. In -all cases, <tt>/path/to/gitweb</tt> in the examples is the directory you ran installed -gitweb in, and contains <tt>gitweb_config.perl</tt>.</p></div> +all cases, <code>/path/to/gitweb</code> in the examples is the directory you ran installed +gitweb in, and contains <code>gitweb_config.perl</code>.</p></div> <div class="paragraph"><p>If you’ve configured a web server that isn’t listed here for gitweb, please send in the instructions so they can be included in a future release.</p></div> <div class="sect2"> @@ -1341,19 +1339,19 @@ directory.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" +<pre><code>ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" <Directory "/var/www/cgi-bin"> Options Indexes FollowSymlinks ExecCGI AllowOverride None Order allow,deny Allow from all -</Directory></tt></pre> +</Directory></code></pre> </div></div> <div class="paragraph"><p>With that configuration the full path to browse repositories would be:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>http://server/cgi-bin/gitweb.cgi</tt></pre> +<pre><code>http://server/cgi-bin/gitweb.cgi</code></pre> </div></div> </div> <div class="sect2"> @@ -1365,7 +1363,7 @@ Apache configuration (for mod_perl 2.x) is suitable.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Alias /perl "/var/www/perl" +<pre><code>Alias /perl "/var/www/perl" <Directory "/var/www/perl"> SetHandler perl-script @@ -1375,12 +1373,12 @@ AllowOverride None Order allow,deny Allow from all -</Directory></tt></pre> +</Directory></code></pre> </div></div> <div class="paragraph"><p>With that configuration the full path to browse repositories would be:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>http://server/perl/gitweb.cgi</tt></pre> +<pre><code>http://server/perl/gitweb.cgi</code></pre> </div></div> </div> <div class="sect2"> @@ -1391,18 +1389,18 @@ configuration is suitable (UNTESTED!)</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>FastCgiServer /usr/share/gitweb/gitweb.cgi +<pre><code>FastCgiServer /usr/share/gitweb/gitweb.cgi ScriptAlias /gitweb /usr/share/gitweb/gitweb.cgi Alias /gitweb/static /usr/share/gitweb/static <Directory /usr/share/gitweb/static> SetHandler default-handler -</Directory></tt></pre> +</Directory></code></pre> </div></div> <div class="paragraph"><p>With that configuration the full path to browse repositories would be:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>http://server/gitweb</tt></pre> +<pre><code>http://server/gitweb</code></pre> </div></div> </div> </div> @@ -1410,15 +1408,15 @@ <div class="sect1"> <h2 id="_advanced_web_server_setup">ADVANCED WEB SERVER SETUP</h2> <div class="sectionbody"> -<div class="paragraph"><p>All of those examples use request rewriting, and need <tt>mod_rewrite</tt> +<div class="paragraph"><p>All of those examples use request rewriting, and need <code>mod_rewrite</code> (or equivalent; examples below are written for Apache).</p></div> <div class="sect2"> <h3 id="_single_url_for_gitweb_and_for_fetching">Single URL for gitweb and for fetching</h3> -<div class="paragraph"><p>If you want to have one URL for both gitweb and your <tt>http://</tt> +<div class="paragraph"><p>If you want to have one URL for both gitweb and your <code>http://</code> repositories, you can configure Apache like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><VirtualHost *:80> +<pre><code><VirtualHost *:80> ServerName git.example.org DocumentRoot /pub/git SetEnv GITWEB_CONFIG /etc/gitweb.conf @@ -1432,14 +1430,14 @@ # make access for "dumb clients" work RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ \ /cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT] -</VirtualHost></tt></pre> +</VirtualHost></code></pre> </div></div> <div class="paragraph"><p>The above configuration expects your public repositories to live under -<em>/pub/git</em> and will serve them as <tt>http://git.domain.org/dir-under-pub-git</tt>, +<em>/pub/git</em> and will serve them as <code>http://git.domain.org/dir-under-pub-git</code>, both as clonable Git URL and as browseable gitweb interface. If you then -start your <a href="git-daemon.html">git-daemon(1)</a> with <tt>--base-path=/pub/git --export-all</tt> -then you can even use the <tt>git://</tt> URL with exactly the same path.</p></div> -<div class="paragraph"><p>Setting the environment variable <tt>GITWEB_CONFIG</tt> will tell gitweb to use the +start your <a href="git-daemon.html">git-daemon(1)</a> with <code>--base-path=/pub/git --export-all</code> +then you can even use the <code>git://</code> URL with exactly the same path.</p></div> +<div class="paragraph"><p>Setting the environment variable <code>GITWEB_CONFIG</code> will tell gitweb to use the named file (i.e. in this example <em>/etc/gitweb.conf</em>) as a configuration for gitweb. You don’t really need it in above example; it is required only if your configuration file is in different place than built-in (during @@ -1451,10 +1449,10 @@ (<em>/etc/gitweb.conf</em> following example):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>@stylesheets = ("/some/absolute/path/gitweb.css"); +<pre><code>@stylesheets = ("/some/absolute/path/gitweb.css"); $my_uri = "/"; $home_link = "/"; -$per_request_config = 1;</tt></pre> +$per_request_config = 1;</code></pre> </div></div> <div class="paragraph"><p>Nowadays though gitweb should create HTML base tag when needed (to set base URI for relative links), so it should work automatically.</p></div> @@ -1467,7 +1465,7 @@ like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><VirtualHost *:80> +<pre><code><VirtualHost *:80> ServerName git.example.org DocumentRoot /pub/git SetEnv GITWEB_CONFIG /etc/gitweb.conf @@ -1500,24 +1498,24 @@ # make access for "dumb clients" work RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ \ /cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT] -</VirtualHost></tt></pre> +</VirtualHost></code></pre> </div></div> -<div class="paragraph"><p>Here actual project root is passed to gitweb via <tt>GITWEB_PROJECT_ROOT</tt> +<div class="paragraph"><p>Here actual project root is passed to gitweb via <code>GITWEB_PROJECT_ROOT</code> environment variable from a web server, so you need to put the following line in gitweb configuration file (<em>/etc/gitweb.conf</em> in above example):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$projectroot = $ENV{'GITWEB_PROJECTROOT'} || "/pub/git";</tt></pre> +<pre><code>$projectroot = $ENV{'GITWEB_PROJECTROOT'} || "/pub/git";</code></pre> </div></div> <div class="paragraph"><p><strong>Note</strong> that this requires to be set for each request, so either -<tt>$per_request_config</tt> must be false, or the above must be put in code -referenced by <tt>$per_request_config</tt>;</p></div> -<div class="paragraph"><p>These configurations enable two things. First, each unix user (<tt><user></tt>) of +<code>$per_request_config</code> must be false, or the above must be put in code +referenced by <code>$per_request_config</code>;</p></div> +<div class="paragraph"><p>These configurations enable two things. First, each unix user (<code><user></code>) of the server will be able to browse through gitweb Git repositories found in <em>~/public_git/</em> with the following url:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>http://git.example.org/~<user>/</tt></pre> +<pre><code>http://git.example.org/~<user>/</code></pre> </div></div> <div class="paragraph"><p>If you do not want this feature on your server just remove the second rewrite rule.</p></div> @@ -1525,7 +1523,7 @@ use the '~’ as first character, just comment or remove the second rewrite rule, and uncomment one of the following according to what you want.</p></div> <div class="paragraph"><p>Second, repositories found in <em>/pub/scm/</em> and <em>/var/git/</em> will be accessible -through <tt>http://git.example.org/scm/</tt> and <tt>http://git.example.org/var/</tt>. +through <code>http://git.example.org/scm/</code> and <code>http://git.example.org/var/</code>. You can add as many project roots as you want by adding rewrite rules like the third and the fourth.</p></div> </div> @@ -1534,13 +1532,13 @@ <div class="paragraph"><p>If you enable PATH_INFO usage in gitweb by putting</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$feature{'pathinfo'}{'default'} = [1];</tt></pre> +<pre><code>$feature{'pathinfo'}{'default'} = [1];</code></pre> </div></div> <div class="paragraph"><p>in your gitweb configuration file, it is possible to set up your server so that it consumes and produces URLs in the form</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>http://git.example.com/project.git/shortlog/sometag</tt></pre> +<pre><code>http://git.example.com/project.git/shortlog/sometag</code></pre> </div></div> <div class="paragraph"><p>i.e. without <em>gitweb.cgi</em> part, by using a configuration such as the following. This configuration assumes that <em>/var/www/gitweb</em> is the @@ -1548,7 +1546,7 @@ complementary static files (stylesheet, favicon, JavaScript):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><VirtualHost *:80> +<pre><code><VirtualHost *:80> ServerAlias git.example.com DocumentRoot /var/www/gitweb @@ -1564,13 +1562,13 @@ RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.* /gitweb.cgi/$0 [L,PT] </Directory> -</VirtualHost></tt></pre> +</VirtualHost></code></pre> </div></div> <div class="paragraph"><p>The rewrite rule guarantees that existing static files will be properly served, whereas any other URL will be passed to gitweb as PATH_INFO parameter.</p></div> <div class="paragraph"><p><strong>Notice</strong> that in this case you don’t need special settings for -<tt>@stylesheets</tt>, <tt>$my_uri</tt> and <tt>$home_link</tt>, but you lose "dumb client" +<code>@stylesheets</code>, <code>$my_uri</code> and <code>$home_link</code>, but you lose "dumb client" access to your project .git dirs (described in "Single URL for gitweb and for fetching" section). A possible workaround for the latter is the following: in your project root dir (e.g. <em>/pub/git</em>) have the projects @@ -1578,7 +1576,7 @@ <em>/pub/git/project.git</em>) and configure Apache as follows:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt><VirtualHost *:80> +<pre><code><VirtualHost *:80> ServerAlias git.example.com DocumentRoot /var/www/gitweb @@ -1595,25 +1593,25 @@ RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.* /gitweb.cgi/$0 [L,PT] </Directory> -</VirtualHost></tt></pre> +</VirtualHost></code></pre> </div></div> <div class="paragraph"><p>The additional AliasMatch makes it so that</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>http://git.example.com/project.git</tt></pre> +<pre><code>http://git.example.com/project.git</code></pre> </div></div> <div class="paragraph"><p>will give raw access to the project’s Git dir (so that the project can be cloned), while</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>http://git.example.com/project</tt></pre> +<pre><code>http://git.example.com/project</code></pre> </div></div> <div class="paragraph"><p>will provide human-friendly gitweb access.</p></div> <div class="paragraph"><p>This solution is not 100% bulletproof, in the sense that if some project has a named ref (branch, tag) starting with <em>git/</em>, then paths such as</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>http://git.example.com/project/command/abranch..git/abranch</tt></pre> +<pre><code>http://git.example.com/project/command/abranch..git/abranch</code></pre> </div></div> <div class="paragraph"><p>will fail with a 404 error.</p></div> </div>
diff --git a/gitworkflows.html b/gitworkflows.html index 3861da5..0ca400d 100644 --- a/gitworkflows.html +++ b/gitworkflows.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitworkflows(7)</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -759,7 +757,7 @@ <h2 id="_description">DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"><p>This document attempts to write down and motivate some of the workflow -elements used for <tt>git.git</tt> itself. Many ideas apply in general, +elements used for <code>git.git</code> itself. Many ideas apply in general, though the full workflow is rarely required for smaller projects with fewer people involved.</p></div> <div class="paragraph"><p>We formulate a set of <em>rules</em> for quick reference, while the prose @@ -781,8 +779,8 @@ beginning. It is always easier to squash a few commits together than to split one big commit into several. Don’t be afraid of making too small or imperfect steps along the way. You can always go back later -and edit the commits with <tt>git rebase --interactive</tt> before you -publish them. You can use <tt>git stash save --keep-index</tt> to run the +and edit the commits with <code>git rebase --interactive</code> before you +publish them. You can use <code>git stash save --keep-index</code> to run the test suite independent of other uncommitted changes; see the EXAMPLES section of <a href="git-stash.html">git-stash(1)</a>.</p></div> </div> @@ -809,7 +807,7 @@ <h3 id="_graduation">Graduation</h3> <div class="paragraph"><p>As a given feature goes from experimental to stable, it also "graduates" between the corresponding branches of the software. -<tt>git.git</tt> uses the following <em>integration branches</em>:</p></div> +<code>git.git</code> uses the following <em>integration branches</em>:</p></div> <div class="ulist"><ul> <li> <p> @@ -946,7 +944,7 @@ <div class="paragraph"><p>If you make it (very) clear that this branch is going to be deleted right after the testing, you can even publish this branch, for example to give the testers a chance to work with it, or other developers a -chance to see if their in-progress work will be compatible. <tt>git.git</tt> +chance to see if their in-progress work will be compatible. <code>git.git</code> has such an official throw-away integration branch called <em>pu</em>.</p></div> </div> <div class="sect2"> @@ -964,7 +962,7 @@ <div class="exampleblock"> <div class="title">Recipe: Verify <em>master</em> is a superset of <em>maint</em></div> <div class="content"> -<div class="paragraph"><p><tt>git log master..maint</tt></p></div> +<div class="paragraph"><p><code>git log master..maint</code></p></div> </div></div> <div class="paragraph"><p>This command should not list any commits. Otherwise, check out <em>master</em> and merge <em>maint</em> into it.</p></div> @@ -973,7 +971,7 @@ <div class="exampleblock"> <div class="title">Recipe: Release tagging</div> <div class="content"> -<div class="paragraph"><p><tt>git tag -s -m "Git X.Y.Z" vX.Y.Z master</tt></p></div> +<div class="paragraph"><p><code>git tag -s -m "Git X.Y.Z" vX.Y.Z master</code></p></div> </div></div> <div class="paragraph"><p>You need to push the new tag to a public Git server (see "DISTRIBUTED WORKFLOWS" below). This makes the tag available to @@ -996,7 +994,7 @@ <div class="exampleblock"> <div class="title">Recipe: Copy maint</div> <div class="content"> -<div class="paragraph"><p><tt>git branch maint-X.Y.(Z-1) maint</tt></p></div> +<div class="paragraph"><p><code>git branch maint-X.Y.(Z-1) maint</code></p></div> </div></div> <div class="paragraph"><p>The <em>maint</em> branch should now be fast-forwarded to the newly released code so that maintenance fixes can be tracked for the current release:</p></div> @@ -1006,12 +1004,12 @@ <div class="ulist"><ul> <li> <p> -<tt>git checkout maint</tt> +<code>git checkout maint</code> </p> </li> <li> <p> -<tt>git merge --ff-only master</tt> +<code>git merge --ff-only master</code> </p> </li> </ul></div> @@ -1032,22 +1030,22 @@ <div class="ulist"><ul> <li> <p> -<tt>git checkout next</tt> +<code>git checkout next</code> </p> </li> <li> <p> -<tt>git reset --hard master</tt> +<code>git reset --hard master</code> </p> </li> <li> <p> -<tt>git merge ai/topic_in_next1</tt> +<code>git merge ai/topic_in_next1</code> </p> </li> <li> <p> -<tt>git merge ai/topic_in_next2</tt> +<code>git merge ai/topic_in_next2</code> </p> </li> <li> @@ -1082,7 +1080,7 @@ <div class="paragraph"><p>Roughly speaking, there are two important workflows: merge and patch. The important difference is that the merge workflow can propagate full history, including merges, while patches cannot. Both workflows can -be used in parallel: in <tt>git.git</tt>, only subsystem maintainers use +be used in parallel: in <code>git.git</code>, only subsystem maintainers use the merge workflow, while everyone else sends patches.</p></div> <div class="paragraph"><p>Note that the maintainer(s) may impose restrictions, such as "Signed-off-by" requirements, that all commits/patches submitted for @@ -1119,7 +1117,7 @@ <div class="exampleblock"> <div class="title">Recipe: Push/pull: Publishing branches/topics</div> <div class="content"> -<div class="paragraph"><p><tt>git push <remote> <branch></tt> and tell everyone where they can fetch +<div class="paragraph"><p><code>git push <remote> <branch></code> and tell everyone where they can fetch from.</p></div> </div></div> <div class="paragraph"><p>You will still have to tell people by other means, such as mail. (Git @@ -1130,7 +1128,7 @@ <div class="exampleblock"> <div class="title">Recipe: Push/pull: Staying up to date</div> <div class="content"> -<div class="paragraph"><p>Use <tt>git fetch <remote></tt> or <tt>git remote update</tt> to stay up to date.</p></div> +<div class="paragraph"><p>Use <code>git fetch <remote></code> or <code>git remote update</code> to stay up to date.</p></div> </div></div> <div class="paragraph"><p>Then simply fork your topic branches from the stable remotes as explained earlier.</p></div> @@ -1139,15 +1137,15 @@ request to do so by mail. Such a request looks like</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>Please pull from - <url> <branch></tt></pre> +<pre><code>Please pull from + <url> <branch></code></pre> </div></div> <div class="paragraph"><p>In that case, <em>git pull</em> can do the fetch and merge in one go, as follows.</p></div> <div class="exampleblock"> <div class="title">Recipe: Push/pull: Merging remote topics</div> <div class="content"> -<div class="paragraph"><p><tt>git pull <url> <branch></tt></p></div> +<div class="paragraph"><p><code>git pull <url> <branch></code></p></div> </div></div> <div class="paragraph"><p>Occasionally, the maintainer may get merge conflicts when he tries to pull changes from downstream. In this case, he can ask downstream to @@ -1168,13 +1166,13 @@ <div class="ulist"><ul> <li> <p> -<tt>git format-patch -M upstream..topic</tt> to turn them into preformatted +<code>git format-patch -M upstream..topic</code> to turn them into preformatted patch files </p> </li> <li> <p> -<tt>git send-email --to=<recipient> <patches></tt> +<code>git send-email --to=<recipient> <patches></code> </p> </li> </ul></div> @@ -1187,7 +1185,7 @@ <div class="exampleblock"> <div class="title">Recipe: format-patch/am: Keeping topics up to date</div> <div class="content"> -<div class="paragraph"><p><tt>git pull --rebase <url> <branch></tt></p></div> +<div class="paragraph"><p><code>git pull --rebase <url> <branch></code></p></div> </div></div> <div class="paragraph"><p>You can then fix the conflicts during the rebase. Presumably you have not published your topic other than by mail, so rebasing it is not a @@ -1198,10 +1196,10 @@ <div class="exampleblock"> <div class="title">Recipe: format-patch/am: Importing patches</div> <div class="content"> -<div class="paragraph"><p><tt>git am < patch</tt></p></div> +<div class="paragraph"><p><code>git am < patch</code></p></div> </div></div> <div class="paragraph"><p>One feature worth pointing out is the three-way merge, which can help -if you get conflicts: <tt>git am -3</tt> will use index information contained +if you get conflicts: <code>git am -3</code> will use index information contained in patches to figure out the merge base. See <a href="git-am.html">git-am(1)</a> for other options.</p></div> </div>
diff --git a/howto-index.html b/howto-index.html index 2f44d23..e0f846d 100644 --- a/howto-index.html +++ b/howto-index.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Git Howto Index</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -885,7 +883,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:14:57 PDT +Last updated 2014-10-31 13:22:25 PDT </div> </div> </body>
diff --git a/howto/keep-canonical-history-correct.html b/howto/keep-canonical-history-correct.html index 9527899..7474e16 100644 --- a/howto/keep-canonical-history-correct.html +++ b/howto/keep-canonical-history-correct.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Keep authoritative canonical history correct with git pull</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -747,46 +745,46 @@ <div class="paragraph"><p>Suppose that that central repository has this history:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> ---o---o---A</tt></pre> +<pre><code> ---o---o---A</code></pre> </div></div> -<div class="paragraph"><p>which ends at commit <tt>A</tt> (time flows from left to right and each node +<div class="paragraph"><p>which ends at commit <code>A</code> (time flows from left to right and each node in the graph is a commit, lines between them indicating parent-child relationship).</p></div> <div class="paragraph"><p>Then you clone it and work on your own commits, which leads you to have this history in <strong>your</strong> repository:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> ---o---o---A---B---C</tt></pre> +<pre><code> ---o---o---A---B---C</code></pre> </div></div> -<div class="paragraph"><p>Imagine your coworker did the same and built on top of <tt>A</tt> in <strong>his</strong> +<div class="paragraph"><p>Imagine your coworker did the same and built on top of <code>A</code> in <strong>his</strong> repository in the meantime, and then pushed it to the central repository:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> ---o---o---A---X---Y---Z</tt></pre> +<pre><code> ---o---o---A---X---Y---Z</code></pre> </div></div> -<div class="paragraph"><p>Now, if you <tt>git push</tt> at this point, because your history that leads -to <tt>C</tt> lacks <tt>X</tt>, <tt>Y</tt> and <tt>Z</tt>, it will fail. You need to somehow make -the tip of your history a descendant of <tt>Z</tt>.</p></div> +<div class="paragraph"><p>Now, if you <code>git push</code> at this point, because your history that leads +to <code>C</code> lacks <code>X</code>, <code>Y</code> and <code>Z</code>, it will fail. You need to somehow make +the tip of your history a descendant of <code>Z</code>.</p></div> <div class="paragraph"><p>One suggested way to solve the problem is "fetch and then merge", aka -<tt>git pull</tt>. When you fetch, your repository will have a history like +<code>git pull</code>. When you fetch, your repository will have a history like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> ---o---o---A---B---C +<pre><code> ---o---o---A---B---C \ - X---Y---Z</tt></pre> + X---Y---Z</code></pre> </div></div> -<div class="paragraph"><p>Once you run merge after that, while still on <strong>your</strong> branch, i.e. <tt>C</tt>, -you will create a merge <tt>M</tt> and make the history look like this:</p></div> +<div class="paragraph"><p>Once you run merge after that, while still on <strong>your</strong> branch, i.e. <code>C</code>, +you will create a merge <code>M</code> and make the history look like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> ---o---o---A---B---C---M +<pre><code> ---o---o---A---B---C---M \ / - X---Y---Z</tt></pre> + X---Y---Z</code></pre> </div></div> -<div class="paragraph"><p><tt>M</tt> is a descendant of <tt>Z</tt>, so you can push to update the central -repository. Such a merge <tt>M</tt> does not lose any commit in both +<div class="paragraph"><p><code>M</code> is a descendant of <code>Z</code>, so you can push to update the central +repository. Such a merge <code>M</code> does not lose any commit in both histories, so in that sense it may not be wrong, but when people want to talk about "the authoritative canonical history that is shared among the project participants", i.e. "the trunk", they often view @@ -794,26 +792,26 @@ this command to view it:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git log --first-parent</tt></pre> +<pre><code> $ git log --first-parent</code></pre> </div></div> <div class="paragraph"><p>For all other people who observed the central repository after your -coworker pushed <tt>Z</tt> but before you pushed <tt>M</tt>, the commit on the trunk -used to be <tt>o-o-A-X-Y-Z</tt>. But because you made <tt>M</tt> while you were on -<tt>C</tt>, <tt>M</tt>'s first parent is <tt>C</tt>, so by pushing <tt>M</tt> to advance the -central repository, you made <tt>X-Y-Z</tt> a side branch, not on the trunk.</p></div> +coworker pushed <code>Z</code> but before you pushed <code>M</code>, the commit on the trunk +used to be <code>o-o-A-X-Y-Z</code>. But because you made <code>M</code> while you were on +<code>C</code>, <code>M</code>'s first parent is <code>C</code>, so by pushing <code>M</code> to advance the +central repository, you made <code>X-Y-Z</code> a side branch, not on the trunk.</p></div> <div class="paragraph"><p>You would rather want to have a history of this shape:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> ---o---o---A---X---Y---Z---M' +<pre><code> ---o---o---A---X---Y---Z---M' \ / - B-----------C</tt></pre> + B-----------C</code></pre> </div></div> <div class="paragraph"><p>so that in the first-parent chain, it is clear that the project first -did <tt>X</tt> and then <tt>Y</tt> and then <tt>Z</tt> and merged a change that consists of -two commits <tt>B</tt> and <tt>C</tt> that achieves a single goal. You may have +did <code>X</code> and then <code>Y</code> and then <code>Z</code> and merged a change that consists of +two commits <code>B</code> and <code>C</code> that achieves a single goal. You may have worked on fixing the bug #12345 with these two patches, and the merge -<tt>M'</tt> with swapped parents can say in its log message "Merge -fix-bug-12345". Having a way to tell <tt>git pull</tt> to create a merge +<code>M'</code> with swapped parents can say in its log message "Merge +fix-bug-12345". Having a way to tell <code>git pull</code> to create a merge but record the parents in reverse order may be a way to do so.</p></div> <div class="paragraph"><p>Note that I said "achieves a single goal" above, because this is important. "Swapping the merge order" only covers a special case @@ -831,9 +829,9 @@ </p> <div class="listingblock"> <div class="content"> -<pre><tt> ---o---o---A---X---Y---Z---B---C</tt></pre> +<pre><code> ---o---o---A---X---Y---Z---B---C</code></pre> </div></div> -<div class="paragraph"><p>with <tt>git pull --rebase</tt> or something.</p></div> +<div class="paragraph"><p>with <code>git pull --rebase</code> or something.</p></div> </li> <li> <p> @@ -846,14 +844,14 @@ <li> <p> Some projects want each commit on the "trunk" to do one single - thing. The output of <tt>git log --first-parent</tt> in such a project + thing. The output of <code>git log --first-parent</code> in such a project would show either a merge of a side branch that completes a single theme, or a single commit that completes a single theme by itself. - If your two commits <tt>B</tt> and <tt>C</tt> (or they may even be two groups of - commits) were solving two independent issues, then the merge <tt>M'</tt> + If your two commits <code>B</code> and <code>C</code> (or they may even be two groups of + commits) were solving two independent issues, then the merge <code>M'</code> we made in the earlier example by swapping the merge order is still not up to the project standard. It merges two unrelated - efforts <tt>B</tt> and <tt>C</tt> at the same time. + efforts <code>B</code> and <code>C</code> at the same time. </p> </li> </ol></div> @@ -862,74 +860,74 @@ this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> C0--C1--C2 topic-c +<pre><code> C0--C1--C2 topic-c / ---o---o---A master \ - B0--B1--B2 topic-b</tt></pre> + B0--B1--B2 topic-b</code></pre> </div></div> <div class="paragraph"><p>That is, keeping separate topics on separate branches, perhaps like so:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git clone $URL work && cd work +<pre><code> $ git clone $URL work && cd work $ git checkout -b topic-b master $ ... work to create B0, B1 and B2 to complete one theme $ git checkout -b topic-c master - $ ... same for the theme of topic-c</tt></pre> + $ ... same for the theme of topic-c</code></pre> </div></div> <div class="paragraph"><p>And then</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git checkout master - $ git pull --ff-only</tt></pre> +<pre><code> $ git checkout master + $ git pull --ff-only</code></pre> </div></div> -<div class="paragraph"><p>would grab <tt>X</tt>, <tt>Y</tt> and <tt>Z</tt> from the upstream and advance your master +<div class="paragraph"><p>would grab <code>X</code>, <code>Y</code> and <code>Z</code> from the upstream and advance your master branch:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> C0--C1--C2 topic-c +<pre><code> C0--C1--C2 topic-c / ---o---o---A---X---Y---Z master \ - B0--B1--B2 topic-b</tt></pre> + B0--B1--B2 topic-b</code></pre> </div></div> <div class="paragraph"><p>And then you would merge these two branches separately:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git merge topic-b - $ git merge topic-c</tt></pre> +<pre><code> $ git merge topic-b + $ git merge topic-c</code></pre> </div></div> <div class="paragraph"><p>to result in</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> C0--C1---------C2 +<pre><code> C0--C1---------C2 / \ ---o---o---A---X---Y---Z---M---N \ / - B0--B1-----B2</tt></pre> + B0--B1-----B2</code></pre> </div></div> <div class="paragraph"><p>and push it back to the central repository.</p></div> <div class="paragraph"><p>It is very much possible that while you are merging topic-b and topic-c, somebody again advanced the history in the central repository -to put <tt>W</tt> on top of <tt>Z</tt>, and make your <tt>git push</tt> fail.</p></div> -<div class="paragraph"><p>In such a case, you would rewind to discard <tt>M</tt> and <tt>N</tt>, update the +to put <code>W</code> on top of <code>Z</code>, and make your <code>git push</code> fail.</p></div> +<div class="paragraph"><p>In such a case, you would rewind to discard <code>M</code> and <code>N</code>, update the tip of your <em>master</em> again and redo the two merges:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git reset --hard origin/master +<pre><code> $ git reset --hard origin/master $ git pull --ff-only $ git merge topic-b - $ git merge topic-c</tt></pre> + $ git merge topic-c</code></pre> </div></div> <div class="paragraph"><p>The procedure will result in a history that looks like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> C0--C1--------------C2 +<pre><code> C0--C1--------------C2 / \ ---o---o---A---X---Y---Z---W---M'--N' \ / - B0--B1---------B2</tt></pre> + B0--B1---------B2</code></pre> </div></div> <div class="paragraph"><p>See also <a href="http://git-blame.blogspot.com/2013/09/fun-with-first-parent-history.html">http://git-blame.blogspot.com/2013/09/fun-with-first-parent-history.html</a></p></div> </div> @@ -938,7 +936,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:03 PDT +Last updated 2014-10-31 13:22:33 PDT </div> </div> </body>
diff --git a/howto/maintain-git.html b/howto/maintain-git.html index a029c97..2a3bbc2 100644 --- a/howto/maintain-git.html +++ b/howto/maintain-git.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to maintain Git</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -749,9 +747,9 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>Mailing list discussions on general design, fielding user +<pre><code>Mailing list discussions on general design, fielding user questions, diagnosing bug reports; reviewing, commenting on, -suggesting alternatives to, and rejecting patches.</tt></pre> +suggesting alternatives to, and rejecting patches.</code></pre> </div></div> </li> <li> @@ -760,10 +758,10 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>Applying new patches from the contributors while spotting and +<pre><code>Applying new patches from the contributors while spotting and correcting minor mistakes, shuffling the integration and testing branches, pushing the results out, cutting the -releases, and making announcements.</tt></pre> +releases, and making announcements.</code></pre> </div></div> </li> <li> @@ -772,7 +770,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>Scratching my own itch and sending proposed patch series out.</tt></pre> +<pre><code>Scratching my own itch and sending proposed patch series out.</code></pre> </div></div> </li> </ul></div> @@ -926,18 +924,18 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>This step is done with "git am".</tt></pre> +<pre><code>This step is done with "git am".</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout master ;# or "git checkout maint" +<pre><code>$ git checkout master ;# or "git checkout maint" $ git am -sc3 mailbox -$ make test</tt></pre> +$ make test</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>In practice, almost no patch directly goes to 'master' or -'maint'.</tt></pre> +<pre><code>In practice, almost no patch directly goes to 'master' or +'maint'.</code></pre> </div></div> </li> <li> @@ -949,20 +947,20 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>And perform the merge. Use "Meta/Reintegrate -e" script (see -later) to aid this step.</tt></pre> +<pre><code>And perform the merge. Use "Meta/Reintegrate -e" script (see +later) to aid this step.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ Meta/cook -w last-issue-of-whats-cooking.mbox</tt></pre> +<pre><code>$ Meta/cook -w last-issue-of-whats-cooking.mbox</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout master ;# or "git checkout maint" +<pre><code>$ git checkout master ;# or "git checkout maint" $ echo ai/topic | Meta/Reintegrate -e ;# "git merge ai/topic" $ git log -p ORIG_HEAD.. ;# final review $ git diff ORIG_HEAD.. ;# final review -$ make test ;# final review</tt></pre> +$ make test ;# final review</code></pre> </div></div> </li> <li> @@ -1012,36 +1010,36 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>The above except the "replacement" are all done with:</tt></pre> +<pre><code>The above except the "replacement" are all done with:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout ai/topic ;# or "git checkout -b ai/topic master" -$ git am -sc3 mailbox</tt></pre> +<pre><code>$ git checkout ai/topic ;# or "git checkout -b ai/topic master" +$ git am -sc3 mailbox</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>while patch replacement is often done by:</tt></pre> +<pre><code>while patch replacement is often done by:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git format-patch ai/topic~$n..ai/topic ;# export existing</tt></pre> +<pre><code>$ git format-patch ai/topic~$n..ai/topic ;# export existing</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>then replace some parts with the new patch, and reapplying:</tt></pre> +<pre><code>then replace some parts with the new patch, and reapplying:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout ai/topic +<pre><code>$ git checkout ai/topic $ git reset --hard ai/topic~$n -$ git am -sc3 -s 000*.txt</tt></pre> +$ git am -sc3 -s 000*.txt</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The full test suite is always run for 'maint' and 'master' +<pre><code>The full test suite is always run for 'maint' and 'master' after patch application; for topic branches the tests are run -as time permits.</tt></pre> +as time permits.</code></pre> </div></div> </li> <li> @@ -1050,9 +1048,9 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout master +<pre><code>$ git checkout master $ git merge maint -$ make test</tt></pre> +$ make test</code></pre> </div></div> </li> <li> @@ -1061,9 +1059,9 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout next +<pre><code>$ git checkout next $ git merge master -$ make test</tt></pre> +$ make test</code></pre> </div></div> </li> <li> @@ -1081,15 +1079,15 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>$ Meta/Reintegrate master..pu >Meta/redo-jch.sh</tt></pre> +<pre><code>$ Meta/Reintegrate master..pu >Meta/redo-jch.sh</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The result is a script that lists topics to be merged in order to +<pre><code>The result is a script that lists topics to be merged in order to rebuild 'pu' as the input to Meta/Reintegrate script. Remove later topics that should not be in 'jch' yet. Add a line that consists of '### match next' before the name of the first topic -in the output that should be in 'jch' but not in 'next' yet.</tt></pre> +in the output that should be in 'jch' but not in 'next' yet.</code></pre> </div></div> </li> <li> @@ -1116,68 +1114,68 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>This step is aided with Meta/redo-jch.sh script created earlier. +<pre><code>This step is aided with Meta/redo-jch.sh script created earlier. If a topic that was already in 'next' gained a patch, the script would list it as "ai/topic~1". To include the new patch to the updated 'next', drop the "~1" part; to keep it excluded, do not touch the line. If a topic that was not in 'next' should be -merged to 'next', add it at the end of the list. Then:</tt></pre> +merged to 'next', add it at the end of the list. Then:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout -B jch master -$ Meta/redo-jch.sh -c1</tt></pre> +<pre><code>$ git checkout -B jch master +$ Meta/redo-jch.sh -c1</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>to rebuild the 'jch' branch from scratch. "-c1" tells the script +<pre><code>to rebuild the 'jch' branch from scratch. "-c1" tells the script to stop merging at the first line that begins with '###' -(i.e. the "### match next" line you added earlier).</tt></pre> +(i.e. the "### match next" line you added earlier).</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>At this point, build-test the result. It may reveal semantic +<pre><code>At this point, build-test the result. It may reveal semantic conflicts (e.g. a topic renamed a variable, another added a new reference to the variable under its old name), in which case prepare an appropriate merge-fix first (see appendix), and rebuild the 'jch' branch from scratch, starting at the tip of -'master'.</tt></pre> +'master'.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Then do the same to 'next'</tt></pre> +<pre><code>Then do the same to 'next'</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout next -$ sh Meta/redo-jch.sh -c1 -e</tt></pre> +<pre><code>$ git checkout next +$ sh Meta/redo-jch.sh -c1 -e</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The "-e" option allows the merge message that comes from the +<pre><code>The "-e" option allows the merge message that comes from the history of the topic and the comments in the "What's cooking" to be edited. The resulting tree should match 'jch' as the same set of topics are merged on 'master'; otherwise there is a mismerge. Investigate why and do not proceed until the mismerge is found -and rectified.</tt></pre> +and rectified.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git diff jch next</tt></pre> +<pre><code>$ git diff jch next</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>When all is well, clean up the redo-jch.sh script with</tt></pre> +<pre><code>When all is well, clean up the redo-jch.sh script with</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ sh Meta/redo-jch.sh -u</tt></pre> +<pre><code>$ sh Meta/redo-jch.sh -u</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>This removes topics listed in the script that have already been +<pre><code>This removes topics listed in the script that have already been merged to 'master'. This may lose '### match next' marker; -add it again to the appropriate place when it happens.</tt></pre> +add it again to the appropriate place when it happens.</code></pre> </div></div> </li> <li> @@ -1186,44 +1184,44 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>$ Meta/Reintegrate master..pu >Meta/redo-pu.sh</tt></pre> +<pre><code>$ Meta/Reintegrate master..pu >Meta/redo-pu.sh</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Edit the result by adding new topics that are not still in 'pu' -in the script. Then</tt></pre> +<pre><code>Edit the result by adding new topics that are not still in 'pu' +in the script. Then</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout -B pu jch -$ sh Meta/redo-pu.sh</tt></pre> +<pre><code>$ git checkout -B pu jch +$ sh Meta/redo-pu.sh</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>When all is well, clean up the redo-pu.sh script with</tt></pre> +<pre><code>When all is well, clean up the redo-pu.sh script with</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ sh Meta/redo-pu.sh -u</tt></pre> +<pre><code>$ sh Meta/redo-pu.sh -u</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Double check by running</tt></pre> +<pre><code>Double check by running</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git branch --no-merged pu</tt></pre> +<pre><code>$ git branch --no-merged pu</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>to see there is no unexpected leftover topics.</tt></pre> +<pre><code>to see there is no unexpected leftover topics.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>At this point, build-test the result for semantic conflicts, and +<pre><code>At this point, build-test the result for semantic conflicts, and if there are, prepare an appropriate merge-fix first (see appendix), and rebuild the 'pu' branch from scratch, starting at -the tip of 'jch'.</tt></pre> +the tip of 'jch'.</code></pre> </div></div> </li> <li> @@ -1233,15 +1231,15 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>This step is helped with Meta/cook script.</tt></pre> +<pre><code>This step is helped with Meta/cook script.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ Meta/cook</tt></pre> +<pre><code>$ Meta/cook</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>This script inspects the history between master..pu, finds tips +<pre><code>This script inspects the history between master..pu, finds tips of topic branches, compares what it found with the current contents in Meta/whats-cooking.txt, and updates that file. Topics not listed in the file but are found in master..pu are @@ -1249,25 +1247,25 @@ are no longer found in master..pu are moved to the "Graduated to master" section, and topics whose commits changed their states (e.g. used to be only in 'pu', now merged to 'next') are updated -with change markers "<<" and ">>".</tt></pre> +with change markers "<<" and ">>".</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Look for lines enclosed in "<<" and ">>"; they hold contents from +<pre><code>Look for lines enclosed in "<<" and ">>"; they hold contents from old file that are replaced by this integration round. After verifying them, remove the old part. Review the description for each topic and update its doneness and plan as needed. To review -the updated plan, run</tt></pre> +the updated plan, run</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ Meta/cook -w</tt></pre> +<pre><code>$ Meta/cook -w</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>which will pick up comments given to the topics, such as "Will +<pre><code>which will pick up comments given to the topics, such as "Will merge to 'next'", etc. (see Meta/cook script to learn what kind -of phrases are supported).</tt></pre> +of phrases are supported).</code></pre> </div></div> </li> <li> @@ -1368,15 +1366,15 @@ the mechanical merge. In other words,</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ echo $X | Meta/Reintegrate</tt></pre> +<pre><code>$ echo $X | Meta/Reintegrate</code></pre> </div></div> <div class="paragraph"><p>is roughly equivalent to this sequence:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git merge --rerere-autoupdate $X +<pre><code>$ git merge --rerere-autoupdate $X $ git commit $ git cherry-pick -n refs/merge-fix/$X -$ git commit --amend</tt></pre> +$ git commit --amend</code></pre> </div></div> <div class="paragraph"><p>The goal of this "prepare a merge-fix" step is to come up with a commit that can be squashed into a result of mechanical merge to @@ -1388,25 +1386,25 @@ fix-up:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout pu~4 +<pre><code>$ git checkout pu~4 $ git show -s --pretty=%s ;# double check Merge branch 'ai/topic' to pu $ edit -$ git commit -m 'merge-fix/ai/topic' -a</tt></pre> +$ git commit -m 'merge-fix/ai/topic' -a</code></pre> </div></div> <div class="paragraph"><p>Then make a reference "refs/merge-fix/ai/topic" to point at this result:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git update-ref refs/merge-fix/ai/topic HEAD</tt></pre> +<pre><code>$ git update-ref refs/merge-fix/ai/topic HEAD</code></pre> </div></div> <div class="paragraph"><p>Then double check the result by asking Meta/Reintegrate to redo the merge:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout pu~5 ;# the parent of the problem merge +<pre><code>$ git checkout pu~5 ;# the parent of the problem merge $ echo ai/topic | Meta/Reintegrate -$ git diff pu~4</tt></pre> +$ git diff pu~4</code></pre> </div></div> <div class="paragraph"><p>This time, because you prepared refs/merge-fix/ai/topic, the resulting merge should have been tweaked to include the fix for the @@ -1424,9 +1422,9 @@ to move the fix to apply to the other branch, perhaps like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ mf=refs/merge-fix +<pre><code>$ mf=refs/merge-fix $ git update-ref $mf/$the_other_branch $mf/ai/topic -$ git update-ref -d $mf/ai/topic</tt></pre> +$ git update-ref -d $mf/ai/topic</code></pre> </div></div> </div> </div> @@ -1435,7 +1433,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:03 PDT +Last updated 2014-10-31 13:22:34 PDT </div> </div> </body>
diff --git a/howto/new-command.html b/howto/new-command.html index 738a37f..2ef6eda 100644 --- a/howto/new-command.html +++ b/howto/new-command.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to integrate new subcommands</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -861,7 +859,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:14:59 PDT +Last updated 2014-10-31 13:22:27 PDT </div> </div> </body>
diff --git a/howto/rebase-from-internal-branch.html b/howto/rebase-from-internal-branch.html index 8336127..35acd69 100644 --- a/howto/rebase-from-internal-branch.html +++ b/howto/rebase-from-internal-branch.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to rebase from an internal branch</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -742,7 +740,7 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt>Petr Baudis <pasky@suse.cz> writes: +<pre><code>Petr Baudis <pasky@suse.cz> writes: > Dear diary, on Sun, Aug 14, 2005 at 09:57:13AM CEST, I got a letter > where Junio C Hamano <junkio@cox.net> told me that... @@ -751,7 +749,7 @@ >> > Junio, maybe you want to talk about how you move patches from your "pu" >> > branch to the real branches. >> -> Actually, wouldn't this be also precisely for what StGIT is intended to?</tt></pre> +> Actually, wouldn't this be also precisely for what StGIT is intended to?</code></pre> </div></div> <div class="paragraph"><p>Exactly my feeling. I was sort of waiting for Catalin to speak up. With its basing philosophical ancestry on quilt, this is @@ -764,24 +762,24 @@ ancestry graph looked like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> *"pu" head -master --> #1 --> #2 --> #3</tt></pre> +<pre><code> *"pu" head +master --> #1 --> #2 --> #3</code></pre> </div></div> <div class="paragraph"><p>So I started from master, made a bunch of edits, and committed:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout master +<pre><code>$ git checkout master $ cd Documentation; ed git.txt ... $ cd ..; git add Documentation/*.txt -$ git commit -s</tt></pre> +$ git commit -s</code></pre> </div></div> <div class="paragraph"><p>After the commit, the ancestry graph would look like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> *"pu" head +<pre><code> *"pu" head master^ --> #1 --> #2 --> #3 \ - \---> master</tt></pre> + \---> master</code></pre> </div></div> <div class="paragraph"><p>The old master is now master^ (the first parent of the master). The new master commit holds my documentation updates.</p></div> @@ -801,17 +799,17 @@ your changes) "pu" rather than merge. So I ran "git rebase":</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout pu -$ git rebase master pu</tt></pre> +<pre><code>$ git checkout pu +$ git rebase master pu</code></pre> </div></div> <div class="paragraph"><p>What this does is to pick all the commits since the current branch (note that I now am on "pu" branch) forked from the master branch, and forward port these changes.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>master^ --> #1 --> #2 --> #3 +<pre><code>master^ --> #1 --> #2 --> #3 \ *"pu" head - \---> master --> #1' --> #2' --> #3'</tt></pre> + \---> master --> #1' --> #2' --> #3'</code></pre> </div></div> <div class="paragraph"><p>The diff between master^ and #1 is applied to master and committed to create #1' commit with the commit information (log, @@ -828,15 +826,15 @@ made a couple of commits on top of it.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> *your "master" head -upstream --> #1 --> #2 --> #3</tt></pre> +<pre><code> *your "master" head +upstream --> #1 --> #2 --> #3</code></pre> </div></div> <div class="paragraph"><p>You would want changes #2 and #3 incorporated in the upstream, while you feel that #1 may need further improvements. So you prepare #2 and #3 for e-mail submission.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git format-patch master^^ master</tt></pre> +<pre><code>$ git format-patch master^^ master</code></pre> </div></div> <div class="paragraph"><p>This creates two files, 0001-XXXX.patch and 0002-XXXX.patch. Send them out "To: " your project maintainer and "Cc: " your mailing @@ -848,11 +846,11 @@ up your changes, along with other changes.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> where *your "master" head +<pre><code> where *your "master" head upstream --> #1 --> #2 --> #3 used \ to be \--> #A --> #2' --> #3' --> #B --> #C - *upstream head</tt></pre> + *upstream head</code></pre> </div></div> <div class="paragraph"><p>The two commits #2' and #3' in the above picture record the same changes your e-mail submission for #2 and #3 contained, but @@ -862,14 +860,14 @@ <div class="paragraph"><p>You fetch from upstream, but not merge.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git fetch upstream</tt></pre> +<pre><code>$ git fetch upstream</code></pre> </div></div> <div class="paragraph"><p>This leaves the updated upstream head in .git/FETCH_HEAD but does not touch your .git/HEAD or .git/refs/heads/master. You run "git rebase" now.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git rebase FETCH_HEAD master</tt></pre> +<pre><code>$ git rebase FETCH_HEAD master</code></pre> </div></div> <div class="paragraph"><p>Earlier, I said that rebase applies all the commits from your branch on top of the upstream head. Well, I lied. "git rebase" @@ -878,12 +876,12 @@ becomes something like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> where *your old "master" head +<pre><code> where *your old "master" head upstream --> #1 --> #2 --> #3 used \ your new "master" head* to be \--> #A --> #2' --> #3' --> #B --> #C --> #1' *upstream - head</tt></pre> + head</code></pre> </div></div> <div class="paragraph"><p>Again, "git prune" would discard the disused commits #1-#3 and you continue on starting from the new "master" head, which is @@ -895,7 +893,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:02 PDT +Last updated 2014-10-31 13:22:33 PDT </div> </div> </body>
diff --git a/howto/rebuild-from-update-hook.html b/howto/rebuild-from-update-hook.html index f02473d..d59e6d7 100644 --- a/howto/rebuild-from-update-hook.html +++ b/howto/rebuild-from-update-hook.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to rebuild from update hook</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -749,16 +747,16 @@ <div class="paragraph"><p>The directories relevant to this how-to are these two:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>/pub/scm/git/git.git/ The public Git repository. -/pub/software/scm/git/docs/ The HTML documentation page.</tt></pre> +<pre><code>/pub/scm/git/git.git/ The public Git repository. +/pub/software/scm/git/docs/ The HTML documentation page.</code></pre> </div></div> <div class="paragraph"><p>So I made a repository to generate the documentation under my home directory over there.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ cd +<pre><code>$ cd $ mkdir doc-git && cd doc-git -$ git clone /pub/scm/git/git.git/ docgen</tt></pre> +$ git clone /pub/scm/git/git.git/ docgen</code></pre> </div></div> <div class="paragraph"><p>What needs to happen is to update the $HOME/doc-git/docgen/ working tree, build HTML docs there and install the result in @@ -766,20 +764,20 @@ script:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ cat >dododoc.sh <<\EOF +<pre><code>$ cat >dododoc.sh <<\EOF #!/bin/sh -cd $HOME/doc-git/docgen || exit</tt></pre> +cd $HOME/doc-git/docgen || exit</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>unset GIT_DIR</tt></pre> +<pre><code>unset GIT_DIR</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>git pull /pub/scm/git/git.git/ master && +<pre><code>git pull /pub/scm/git/git.git/ master && cd Documentation && make install-webdoc -EOF</tt></pre> +EOF</code></pre> </div></div> <div class="paragraph"><p>Initially I used to run this by hand whenever I push into the public Git repository. Then I did a cron job that ran twice a @@ -787,24 +785,24 @@ like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ cat >/pub/scm/git/git.git/hooks/post-update <<\EOF +<pre><code>$ cat >/pub/scm/git/git.git/hooks/post-update <<\EOF #!/bin/sh # # An example hook script to prepare a packed repository for use over # dumb transports. # -# To enable this hook, make this file executable by "chmod +x post-update".</tt></pre> +# To enable this hook, make this file executable by "chmod +x post-update".</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>case " $* " in +<pre><code>case " $* " in *' refs/heads/master '*) echo $HOME/doc-git/dododoc.sh | at now ;; esac exec git-update-server-info EOF -$ chmod +x /pub/scm/git/git.git/hooks/post-update</tt></pre> +$ chmod +x /pub/scm/git/git.git/hooks/post-update</code></pre> </div></div> <div class="paragraph"><p>There are four things worth mentioning:</p></div> <div class="ulist"><ul> @@ -847,7 +845,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:02 PDT +Last updated 2014-10-31 13:22:33 PDT </div> </div> </body>
diff --git a/howto/recover-corrupted-blob-object.html b/howto/recover-corrupted-blob-object.html index 2a60043..639e39b 100644 --- a/howto/recover-corrupted-blob-object.html +++ b/howto/recover-corrupted-blob-object.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to recover a corrupted blob object</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -742,10 +740,10 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt>On Fri, 9 Nov 2007, Yossi Leybovich wrote: +<pre><code>On Fri, 9 Nov 2007, Yossi Leybovich wrote: > > Did not help still the repository look for this object? -> Any one know how can I track this object and understand which file is it</tt></pre> +> Any one know how can I track this object and understand which file is it</code></pre> </div></div> <div class="paragraph"><p>So exactly <strong>because</strong> the SHA-1 hash is cryptographically secure, the hash itself doesn’t actually tell you anything, in order to fix a corrupt @@ -767,19 +765,19 @@ non-corrupt version.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>So: +<pre><code>So: -> ib]$ mv .git/objects/4b/9458b3786228369c63936db65827de3cc06200 ../</tt></pre> +> ib]$ mv .git/objects/4b/9458b3786228369c63936db65827de3cc06200 ../</code></pre> </div></div> <div class="paragraph"><p>This is the right thing to do, although it’s usually best to save it under it’s full SHA-1 name (you just dropped the "4b" from the result ;).</p></div> <div class="paragraph"><p>Let’s see what that tells us:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>> ib]$ git-fsck --full +<pre><code>> ib]$ git-fsck --full > broken link from tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8 > to blob 4b9458b3786228369c63936db65827de3cc06200 -> missing blob 4b9458b3786228369c63936db65827de3cc06200</tt></pre> +> missing blob 4b9458b3786228369c63936db65827de3cc06200</code></pre> </div></div> <div class="paragraph"><p>Ok, I removed the "dangling commit" messages, because they are just messages about the fact that you probably have rebased etc, so they’re not @@ -788,24 +786,24 @@ <div class="paragraph"><p>Now you can do</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git ls-tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8</tt></pre> +<pre><code>git ls-tree 2d9263c6d23595e7cb2a21e5ebbb53655278dff8</code></pre> </div></div> <div class="paragraph"><p>which will show something like</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>100644 blob 8d14531846b95bfa3564b58ccfb7913a034323b8 .gitignore +<pre><code>100644 blob 8d14531846b95bfa3564b58ccfb7913a034323b8 .gitignore 100644 blob ebf9bf84da0aab5ed944264a5db2a65fe3a3e883 .mailmap 100644 blob ca442d313d86dc67e0a2e5d584b465bd382cbf5c COPYING 100644 blob ee909f2cc49e54f0799a4739d24c4cb9151ae453 CREDITS 040000 tree 0f5f709c17ad89e72bdbbef6ea221c69807009f6 Documentation 100644 blob 1570d248ad9237e4fa6e4d079336b9da62d9ba32 Kbuild 100644 blob 1c7c229a092665b11cd46a25dbd40feeb31661d9 MAINTAINERS -...</tt></pre> +...</code></pre> </div></div> <div class="paragraph"><p>and you should now have a line that looks like</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>10064 blob 4b9458b3786228369c63936db65827de3cc06200 my-magic-file</tt></pre> +<pre><code>10064 blob 4b9458b3786228369c63936db65827de3cc06200 my-magic-file</code></pre> </div></div> <div class="paragraph"><p>in the output. This already tells you a <strong>lot</strong> it tells you what file the corrupt blob came from!</p></div> @@ -815,7 +813,7 @@ working tree, in which case fixing this problem is really simple, just do</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git hash-object -w my-magic-file</tt></pre> +<pre><code>git hash-object -w my-magic-file</code></pre> </div></div> <div class="paragraph"><p>again, and if it outputs the missing SHA-1 (4b945..) you’re now all done!</p></div> <div class="paragraph"><p>But that’s the really lucky case, so let’s assume that it was some older @@ -823,7 +821,7 @@ <div class="paragraph"><p>The easiest way to do it is to do</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git log --raw --all --full-history -- subdirectory/my-magic-file</tt></pre> +<pre><code>git log --raw --all --full-history -- subdirectory/my-magic-file</code></pre> </div></div> <div class="paragraph"><p>and that will show you the whole log for that file (please realize that the tree you had may not be the top-level tree, so you need to figure out @@ -831,22 +829,22 @@ raw output, you’ll now get something like</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>commit abc +<pre><code>commit abc Author: Date: .. -:100644 100644 4b9458b... newsha... M somedirectory/my-magic-file</tt></pre> +:100644 100644 4b9458b... newsha... M somedirectory/my-magic-file</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>commit xyz +<pre><code>commit xyz Author: -Date:</tt></pre> +Date:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt> .. -:100644 100644 oldsha... 4b9458b... M somedirectory/my-magic-file</tt></pre> +<pre><code> .. +:100644 100644 oldsha... 4b9458b... M somedirectory/my-magic-file</code></pre> </div></div> <div class="paragraph"><p>and this actually tells you what the <strong>previous</strong> and <strong>subsequent</strong> versions of that file were! So now you can look at those ("oldsha" and "newsha" @@ -856,13 +854,13 @@ <div class="paragraph"><p>If you can do that, you can now recreate the missing object with</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git hash-object -w <recreated-file></tt></pre> +<pre><code>git hash-object -w <recreated-file></code></pre> </div></div> <div class="paragraph"><p>and your repository is good again!</p></div> <div class="paragraph"><p>(Btw, you could have ignored the fsck, and started with doing a</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>git log --raw --all</tt></pre> +<pre><code>git log --raw --all</code></pre> </div></div> <div class="paragraph"><p>and just looked for the sha of the missing object (4b9458b..) in that whole thing. It’s up to you - Git does <strong>have</strong> a lot of information, it is @@ -872,7 +870,7 @@ thing.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>Linus</tt></pre> +<pre><code>Linus</code></pre> </div></div> </div> </div> @@ -880,7 +878,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:02 PDT +Last updated 2014-10-31 13:22:31 PDT </div> </div> </body>
diff --git a/howto/recover-corrupted-object-harder.html b/howto/recover-corrupted-object-harder.html index a9d44e1..d49b99c 100644 --- a/howto/recover-corrupted-object-harder.html +++ b/howto/recover-corrupted-object-harder.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to recover an object from scratch</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -756,11 +754,11 @@ because I’ll refer to them later):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git fsck +<pre><code> $ git fsck error: $pack SHA1 checksum mismatch error: index CRC mismatch for object $obj from $pack at offset 51653873 error: inflate: data stream error (incorrect data check) - error: cannot unpack $obj from $pack at offset 51653873</tt></pre> + error: cannot unpack $obj from $pack at offset 51653873</code></pre> </div></div> <div class="paragraph"><p>The pack checksum failing means a byte is munged somewhere, and it is presumably in the object mentioned (since both the index checksum and @@ -774,9 +772,9 @@ needed to know how big the object was, which I found out with:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git show-index <$idx | cut -d' ' -f1 | sort -n | grep -A1 51653873 +<pre><code> $ git show-index <$idx | cut -d' ' -f1 | sort -n | grep -A1 51653873 51653873 - 51664736</tt></pre> + 51664736</code></pre> </div></div> <div class="paragraph"><p>Show-index gives us the list of objects and their offsets. We throw away everything but the offsets, and then sort them so that our interesting @@ -785,7 +783,7 @@ 10863 bytes long, and we can grab it with:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> dd if=$pack of=object bs=1 skip=51653873 count=10863</tt></pre> +<pre><code> dd if=$pack of=object bs=1 skip=51653873 count=10863</code></pre> </div></div> <div class="paragraph"><p>I inspected a hexdump of the data, looking for any obvious bogosity (e.g., a 4K run of zeroes would be a good sign of filesystem @@ -799,7 +797,7 @@ valid pack like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> # pack magic and version +<pre><code> # pack magic and version printf 'PACK\0\0\0\2' >tmp.pack # pack has one object printf '\0\0\0\1' >>tmp.pack @@ -807,7 +805,7 @@ cat object >>tmp.pack # and then append the pack trailer /path/to/git.git/test-sha1 -b <tmp.pack >trailer - cat trailer >>tmp.pack</tt></pre> + cat trailer >>tmp.pack</code></pre> </div></div> <div class="paragraph"><p>and then running "git index-pack tmp.pack" in the debugger (stop at unpack_raw_entry). Doing this, I found that there were 3 bytes of header @@ -815,7 +813,7 @@ off with:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> dd if=object of=zlib bs=1 skip=3</tt></pre> +<pre><code> dd if=object of=zlib bs=1 skip=3</code></pre> </div></div> <div class="paragraph"><p>I ran the result through zlib’s inflate using a custom C program. And while it did report the error, I did get the right number of output @@ -836,7 +834,7 @@ <div class="paragraph"><p>The program I used is here:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>#include <stdio.h> +<pre><code>#include <stdio.h> #include <unistd.h> #include <string.h> #include <signal.h> @@ -896,20 +894,20 @@ alarm(0); fprintf(stderr, "\n"); return 0; -}</tt></pre> +}</code></pre> </div></div> <div class="paragraph"><p>I compiled and ran with:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> gcc -Wall -Werror -O3 munge.c -o munge -lz - ./munge <zlib</tt></pre> +<pre><code> gcc -Wall -Werror -O3 munge.c -o munge -lz + ./munge <zlib</code></pre> </div></div> <div class="paragraph"><p>There were a few false positives early on (if you write "no data" in the zlib header, zlib thinks it’s just fine :) ). But I got a hit about halfway through:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> i=5642, j=c7</tt></pre> +<pre><code> i=5642, j=c7</code></pre> </div></div> <div class="paragraph"><p>I let it run to completion, and got a few more hits at the end (where it was munging the crc to match our broken data). So there was a good @@ -920,11 +918,11 @@ <div class="paragraph"><p>I fixed the packfile itself with:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> chmod +w $pack +<pre><code> chmod +w $pack printf '\xc7' | dd of=$pack bs=1 seek=51659518 conv=notrunc - chmod -w $pack</tt></pre> + chmod -w $pack</code></pre> </div></div> -<div class="paragraph"><p>The <tt>\xc7</tt> comes from the replacement byte our "munge" program found. +<div class="paragraph"><p>The <code>\xc7</code> comes from the replacement byte our "munge" program found. The offset 51659518 is derived by taking the original object offset (51653873), adding the replacement offset found by "munge" (5642), and then adding back in the 3 bytes of git header we stripped.</p></div> @@ -938,8 +936,8 @@ between what the corrupted data inflates to, versus the real data:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> - cp = strtok (arg, "+"); - + cp = strtok (arg, ".");</tt></pre> +<pre><code> - cp = strtok (arg, "+"); + + cp = strtok (arg, ".");</code></pre> </div></div> <div class="paragraph"><p>It tweaked one byte and still ended up as valid, readable C that just happened to do something totally different! One takeaway is that on a @@ -955,7 +953,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:02 PDT +Last updated 2014-10-31 13:22:32 PDT </div> </div> </body>
diff --git a/howto/revert-a-faulty-merge.html b/howto/revert-a-faulty-merge.html index 18b8666..7dc8a61 100644 --- a/howto/revert-a-faulty-merge.html +++ b/howto/revert-a-faulty-merge.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to revert a faulty merge</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -743,44 +741,44 @@ <div class="paragraph"><p>Alan <<a href="mailto:alan@clueserver.org">alan@clueserver.org</a>> said:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>I have a master branch. We have a branch off of that that some +<pre><code>I have a master branch. We have a branch off of that that some developers are doing work on. They claim it is ready. We merge it into the master branch. It breaks something so we revert the merge. They make changes to the code. they get it to a point where they say -it is ok and we merge again.</tt></pre> +it is ok and we merge again.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>When examined, we find that code changes made before the revert are +<pre><code>When examined, we find that code changes made before the revert are not in the master branch, but code changes after are in the master -branch.</tt></pre> +branch.</code></pre> </div></div> <div class="paragraph"><p>and asked for help recovering from this situation.</p></div> <div class="paragraph"><p>The history immediately after the "revert of the merge" would look like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>---o---o---o---M---x---x---W +<pre><code>---o---o---o---M---x---x---W / - ---A---B</tt></pre> + ---A---B</code></pre> </div></div> <div class="paragraph"><p>where A and B are on the side development that was not so good, M is the merge that brings these premature changes into the mainline, x are changes unrelated to what the side branch did and already made on the mainline, and W is the "revert of the merge M" (doesn’t W look M upside down?). -IOW, <tt>"diff W^..W"</tt> is similar to <tt>"diff -R M^..M"</tt>.</p></div> +IOW, <code>"diff W^..W"</code> is similar to <code>"diff -R M^..M"</code>.</p></div> <div class="paragraph"><p>Such a "revert" of a merge can be made with:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git revert -m 1 M</tt></pre> +<pre><code>$ git revert -m 1 M</code></pre> </div></div> <div class="paragraph"><p>After the developers of the side branch fix their mistakes, the history may look like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>---o---o---o---M---x---x---W---x +<pre><code>---o---o---o---M---x---x---W---x / - ---A---B-------------------C---D</tt></pre> + ---A---B-------------------C---D</code></pre> </div></div> <div class="paragraph"><p>where C and D are to fix what was broken in A and B, and you may already have some other changes on the mainline after W.</p></div> @@ -790,59 +788,59 @@ <div class="paragraph"><p>Linus explains the situation:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>Reverting a regular commit just effectively undoes what that commit +<pre><code>Reverting a regular commit just effectively undoes what that commit did, and is fairly straightforward. But reverting a merge commit also undoes the _data_ that the commit changed, but it does absolutely -nothing to the effects on _history_ that the merge had.</tt></pre> +nothing to the effects on _history_ that the merge had.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>So the merge will still exist, and it will still be seen as joining +<pre><code>So the merge will still exist, and it will still be seen as joining the two branches together, and future merges will see that merge as the last shared state - and the revert that reverted the merge brought -in will not affect that at all.</tt></pre> +in will not affect that at all.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>So a "revert" undoes the data changes, but it's very much _not_ an +<pre><code>So a "revert" undoes the data changes, but it's very much _not_ an "undo" in the sense that it doesn't undo the effects of a commit on -the repository history.</tt></pre> +the repository history.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>So if you think of "revert" as "undo", then you're going to always +<pre><code>So if you think of "revert" as "undo", then you're going to always miss this part of reverts. Yes, it undoes the data, but no, it doesn't -undo history.</tt></pre> +undo history.</code></pre> </div></div> <div class="paragraph"><p>In such a situation, you would want to first revert the previous revert, which would make the history look like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>---o---o---o---M---x---x---W---x---Y +<pre><code>---o---o---o---M---x---x---W---x---Y / - ---A---B-------------------C---D</tt></pre> + ---A---B-------------------C---D</code></pre> </div></div> <div class="paragraph"><p>where Y is the revert of W. Such a "revert of the revert" can be done with:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git revert W</tt></pre> +<pre><code>$ git revert W</code></pre> </div></div> <div class="paragraph"><p>This history would (ignoring possible conflicts between what W and W..Y changed) be equivalent to not having W or Y at all in the history:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>---o---o---o---M---x---x-------x---- +<pre><code>---o---o---o---M---x---x-------x---- / - ---A---B-------------------C---D</tt></pre> + ---A---B-------------------C---D</code></pre> </div></div> <div class="paragraph"><p>and merging the side branch again will not have conflict arising from an earlier revert and revert of the revert.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>---o---o---o---M---x---x-------x-------* +<pre><code>---o---o---o---M---x---x-------x-------* / / - ---A---B-------------------C---D</tt></pre> + ---A---B-------------------C---D</code></pre> </div></div> <div class="paragraph"><p>Of course the changes made in C and D still can conflict with what was done by any of the x, but that is just a normal merge conflict.</p></div> @@ -851,29 +849,29 @@ after the revert, the history would have looked like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>---o---o---o---M---x---x---W---x---x +<pre><code>---o---o---o---M---x---x---W---x---x / \ - ---A---B A'--B'--C'</tt></pre> + ---A---B A'--B'--C'</code></pre> </div></div> <div class="paragraph"><p>If you reverted the revert in such a case as in the previous example:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>---o---o---o---M---x---x---W---x---x---Y---* +<pre><code>---o---o---o---M---x---x---W---x---x---Y---* / \ / - ---A---B A'--B'--C'</tt></pre> + ---A---B A'--B'--C'</code></pre> </div></div> <div class="paragraph"><p>where Y is the revert of W, A' and B' are rerolled A and B, and there may -also be a further fix-up C' on the side branch. <tt>"diff Y^..Y"</tt> is similar -to <tt>"diff -R W^..W"</tt> (which in turn means it is similar to <tt>"diff M^..M"</tt>), -and <tt>"diff A'^..C'"</tt> by definition would be similar but different from that, +also be a further fix-up C' on the side branch. <code>"diff Y^..Y"</code> is similar +to <code>"diff -R W^..W"</code> (which in turn means it is similar to <code>"diff M^..M"</code>), +and <code>"diff A'^..C'"</code> by definition would be similar but different from that, because it is a rerolled series of the earlier change. There will be a lot of overlapping changes that result in conflicts. So do not do "revert of revert" blindly without thinking..</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>---o---o---o---M---x---x---W---x---x +<pre><code>---o---o---o---M---x---x---W---x---x / \ - ---A---B A'--B'--C'</tt></pre> + ---A---B A'--B'--C'</code></pre> </div></div> <div class="paragraph"><p>In the history with rebased side branch, W (and M) are behind the merge base of the updated branch and the tip of the mainline, and they should @@ -931,9 +929,9 @@ change the topic’s branching-off point. Consider the following situation:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>P---o---o---M---x---x---W---x +<pre><code>P---o---o---M---x---x---W---x \ / - A---B---C</tt></pre> + A---B---C</code></pre> </div></div> <div class="paragraph"><p>where commit W reverted commit M because it turned out that commit B was wrong and needs to be rewritten, but you need the rewritten topic to still branch @@ -945,11 +943,11 @@ with the "pick" command. So you end up with this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>P---o---o---M---x---x---W---x +<pre><code>P---o---o---M---x---x---W---x \ / A---B---C <-- old branch \ - B'---C' <-- naively rewritten branch</tt></pre> + B'---C' <-- naively rewritten branch</code></pre> </div></div> <div class="paragraph"><p>To merge A-B'-C' into the mainline branch you would still have to first revert commit W in order to pick up the changes in A, but then it’s likely that the @@ -959,28 +957,28 @@ including commit A:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> A'---B'---C' <-- completely rewritten branch +<pre><code> A'---B'---C' <-- completely rewritten branch / P---o---o---M---x---x---W---x \ / - A---B---C</tt></pre> + A---B---C</code></pre> </div></div> <div class="paragraph"><p>You can merge A'-B'-C' into the mainline branch without worrying about first reverting W. Mainline’s history would look like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> A'---B'---C'------------------ +<pre><code> A'---B'---C'------------------ / \ P---o---o---M---x---x---W---x---M2 \ / - A---B---C</tt></pre> + A---B---C</code></pre> </div></div> <div class="paragraph"><p>But if you don’t actually need to change commit A, then you need some way to recreate it as a new commit with the same changes in it. The rebase command’s --no-ff option provides a way to do this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git rebase [-i] --no-ff P</tt></pre> +<pre><code>$ git rebase [-i] --no-ff P</code></pre> </div></div> <div class="paragraph"><p>The --no-ff option creates a new branch A'-B'-C' with all-new commits (all the SHA IDs will be different) even if in the interactive case you only actually @@ -990,34 +988,34 @@ to fix it up. Let’s revisit the situation discussed at the start of this howto:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>P---o---o---M---x---x---W---x +<pre><code>P---o---o---M---x---x---W---x \ / - A---B---C----------------D---E <-- fixed-up topic branch</tt></pre> + A---B---C----------------D---E <-- fixed-up topic branch</code></pre> </div></div> <div class="paragraph"><p>At this point, you can use --no-ff to recreate the topic branch:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git checkout E -$ git rebase --no-ff P</tt></pre> +<pre><code>$ git checkout E +$ git rebase --no-ff P</code></pre> </div></div> <div class="paragraph"><p>yielding</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> A'---B'---C'------------D'---E' <-- recreated topic branch +<pre><code> A'---B'---C'------------D'---E' <-- recreated topic branch / P---o---o---M---x---x---W---x \ / - A---B---C----------------D---E</tt></pre> + A---B---C----------------D---E</code></pre> </div></div> <div class="paragraph"><p>You can merge the recreated branch into the mainline without reverting commit W, and mainline’s history will look like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> A'---B'---C'------------D'---E' +<pre><code> A'---B'---C'------------D'---E' / \ P---o---o---M---x---x---W---x---M2 \ / - A---B---C</tt></pre> + A---B---C</code></pre> </div></div> </div> </div> @@ -1025,7 +1023,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:02 PDT +Last updated 2014-10-31 13:22:31 PDT </div> </div> </body>
diff --git a/howto/revert-branch-rebase.html b/howto/revert-branch-rebase.html index 018386c..6ef7bda 100644 --- a/howto/revert-branch-rebase.html +++ b/howto/revert-branch-rebase.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to revert an existing commit</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -749,7 +747,7 @@ <div class="paragraph"><p>First, prepare a throw-away branch in case I screw things up.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout -b revert-c99 master</tt></pre> +<pre><code>$ git checkout -b revert-c99 master</code></pre> </div></div> <div class="paragraph"><p>Now I am on the <em>revert-c99</em> branch. Let’s figure out which commit to revert. I happen to know that the top of the <em>master</em> branch is a @@ -758,7 +756,7 @@ merge introduced 5 commits or so:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git show-branch --more=4 master master^2 | head +<pre><code>$ git show-branch --more=4 master master^2 | head * [master] Merge refs/heads/portable from http://www.cs.berkeley.... ! [master^2] Replace C99 array initializers with code. -- @@ -768,7 +766,7 @@ *+ [master^2~2] Include sys/time.h in daemon.c. *+ [master^2~3] Fix ?: statements. *+ [master^2~4] Replace zero-length array decls with []. -* [master~1] tutorial note about git branch</tt></pre> +* [master~1] tutorial note about git branch</code></pre> </div></div> <div class="paragraph"><p>The <em>--more=4</em> above means "after we reach the merge base of refs, show until we display four more common commits". That last commit @@ -784,22 +782,22 @@ leaves the commit log message it wanted to use in <em>.msg</em> file:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git revert -n master^2~4 +<pre><code>$ git revert -n master^2~4 $ cat .msg Revert "Replace zero-length array decls with []." This reverts 6c5f9baa3bc0d63e141e0afc23110205379905a4 commit. $ git diff HEAD ;# to make sure what we are reverting makes sense. $ make CC=gcc-2.95 clean test ;# make sure it fixed the breakage. -$ make clean test ;# make sure it did not cause other breakage.</tt></pre> +$ make clean test ;# make sure it did not cause other breakage.</code></pre> </div></div> <div class="paragraph"><p>The reverted change makes sense (from reading the <em>diff</em> output), does fix the problem (from <em>make CC=gcc-2.95</em> test), and does not cause new breakage (from the last <em>make test</em>). I’m ready to commit:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git commit -a -s ;# read .msg into the log, - # and explain why I am reverting.</tt></pre> +<pre><code>$ git commit -a -s ;# read .msg into the log, + # and explain why I am reverting.</code></pre> </div></div> <div class="paragraph"><p>I could have screwed up in any of the above steps, but in the worst case I could just have done <em>git checkout master</em> to start over. @@ -807,7 +805,7 @@ <em>revert-c99</em> is what I want. So merge that back into <em>master</em>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout master +<pre><code>$ git checkout master $ git merge revert-c99 ;# this should be a fast-forward Updating from 10d781b9caa4f71495c7b34963bef137216f86a8 to e3a693c... cache.h | 8 ++++---- @@ -815,19 +813,19 @@ ls-files.c | 2 +- receive-pack.c | 2 +- server-info.c | 2 +- - 5 files changed, 8 insertions(+), 8 deletions(-)</tt></pre> + 5 files changed, 8 insertions(+), 8 deletions(-)</code></pre> </div></div> <div class="paragraph"><p>There is no need to redo the test at this point. We fast-forwarded and we know <em>master</em> matches <em>revert-c99</em> exactly. In fact:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git diff master..revert-c99</tt></pre> +<pre><code>$ git diff master..revert-c99</code></pre> </div></div> <div class="paragraph"><p>says nothing.</p></div> <div class="paragraph"><p>Then we rebase the <em>pu</em> branch as usual.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout pu +<pre><code>$ git checkout pu $ git tag pu-anchor pu $ git rebase master * Applying: Redo "revert" using three-way merge machinery. @@ -844,29 +842,29 @@ * Applying: Show commits in topo order and name all commits. First trying simple merge strategy to cherry-pick. * Applying: More documentation updates. -First trying simple merge strategy to cherry-pick.</tt></pre> +First trying simple merge strategy to cherry-pick.</code></pre> </div></div> <div class="paragraph"><p>The temporary tag <em>pu-anchor</em> is me just being careful, in case <em>git rebase</em> screws up. After this, I can do these for sanity check:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git diff pu-anchor..pu ;# make sure we got the master fix. +<pre><code>$ git diff pu-anchor..pu ;# make sure we got the master fix. $ make CC=gcc-2.95 clean test ;# make sure it fixed the breakage. -$ make clean test ;# make sure it did not cause other breakage.</tt></pre> +$ make clean test ;# make sure it did not cause other breakage.</code></pre> </div></div> <div class="paragraph"><p>Everything is in the good order. I do not need the temporary branch or tag anymore, so remove them:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ rm -f .git/refs/tags/pu-anchor -$ git branch -d revert-c99</tt></pre> +<pre><code>$ rm -f .git/refs/tags/pu-anchor +$ git branch -d revert-c99</code></pre> </div></div> <div class="paragraph"><p>It was an emergency fix, so we might as well merge it into the <em>release candidate</em> branch, although I expect the next release would be some days off:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git checkout rc +<pre><code>$ git checkout rc $ git pull . master Packing 0 objects Unpacking 0 objects @@ -879,12 +877,12 @@ ls-files.c | 2 +- receive-pack.c | 2 +- server-info.c | 2 +- - 5 files changed, 8 insertions(+), 8 deletions(-)</tt></pre> + 5 files changed, 8 insertions(+), 8 deletions(-)</code></pre> </div></div> <div class="paragraph"><p>And the final repository status looks like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git show-branch --more=1 master pu rc +<pre><code>$ git show-branch --more=1 master pu rc ! [master] Revert "Replace zero-length array decls with []." ! [pu] git-repack: Add option to repack all objects. * [rc] Merge refs/heads/master from . @@ -899,7 +897,7 @@ - [rc] Merge refs/heads/master from . ++* [master] Revert "Replace zero-length array decls with []." - [rc~1] Merge refs/heads/master from . -... [master~1] Merge refs/heads/portable from http://www.cs.berkeley....</tt></pre> +... [master~1] Merge refs/heads/portable from http://www.cs.berkeley....</code></pre> </div></div> </div> </div> @@ -907,7 +905,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:14:59 PDT +Last updated 2014-10-31 13:22:27 PDT </div> </div> </body>
diff --git a/howto/separating-topic-branches.html b/howto/separating-topic-branches.html index 15f524d..4554d50 100644 --- a/howto/separating-topic-branches.html +++ b/howto/separating-topic-branches.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to separate topic branches</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -748,10 +746,10 @@ up with a history like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> "master" +<pre><code> "master" o---o \ "topic" - o---o---o---o---o---o</tt></pre> + o---o---o---o---o---o</code></pre> </div></div> <div class="paragraph"><p>At this point, "topic" contains something I know I want, but it contains two concepts that turned out to be completely independent. @@ -763,18 +761,18 @@ start building on top of "master":</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git diff master..topic >P.diff +<pre><code>$ git diff master..topic >P.diff $ git checkout -b topicA master ... pick and apply pieces from P.diff to build -... commits on topicA branch.</tt></pre> +... commits on topicA branch.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt> o---o---o +<pre><code> o---o---o / "topicA" o---o"master" \ "topic" - o---o---o---o---o---o</tt></pre> + o---o---o---o---o---o</code></pre> </div></div> <div class="paragraph"><p>Before doing each commit on "topicA" HEAD, I run "diff HEAD" before update-index the affected paths, or "diff --cached HEAD" @@ -788,27 +786,27 @@ other topic:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git diff -R topic >P.diff ;# --cached also would work fine +<pre><code>$ git diff -R topic >P.diff ;# --cached also would work fine $ git checkout -b topicB master ... pick and apply pieces from P.diff to build -... commits on topicB branch.</tt></pre> +... commits on topicB branch.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt> "topicB" +<pre><code> "topicB" o---o---o---o---o / /o---o---o |/ "topicA" o---o"master" \ "topic" - o---o---o---o---o---o</tt></pre> + o---o---o---o---o---o</code></pre> </div></div> <div class="paragraph"><p>After I am done, I’d try a pretend-merge between "topicA" and "topicB" in order to make sure I have not missed anything:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git pull . topicA ;# merge it into current "topicB" +<pre><code>$ git pull . topicA ;# merge it into current "topicB" $ git diff topic "topicB" o---o---o---o---o---* (pretend merge) @@ -817,23 +815,23 @@ |/ "topicA" o---o"master" \ "topic" - o---o---o---o---o---o</tt></pre> + o---o---o---o---o---o</code></pre> </div></div> <div class="paragraph"><p>The last diff better not to show anything other than cleanups for crufts. Then I can finally clean things up:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git branch -D topic -$ git reset --hard HEAD^ ;# nuke pretend merge</tt></pre> +<pre><code>$ git branch -D topic +$ git reset --hard HEAD^ ;# nuke pretend merge</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt> "topicB" +<pre><code> "topicB" o---o---o---o---o / /o---o---o |/ "topicA" -o---o"master"</tt></pre> +o---o"master"</code></pre> </div></div> </div> </div> @@ -841,7 +839,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:01 PDT +Last updated 2014-10-31 13:22:30 PDT </div> </div> </body>
diff --git a/howto/setup-git-server-over-http.html b/howto/setup-git-server-over-http.html index 884a8bc..b73393b 100644 --- a/howto/setup-git-server-over-http.html +++ b/howto/setup-git-server-over-http.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to setup Git server over http</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -747,7 +745,7 @@ </td> <td class="content">This document is from 2006. A lot has happened since then, and this document is now relevant mainly if your web host is not CGI capable. -Almost everyone else should instead look at linkgit:git-http-backend[1].</td> +Almost everyone else should instead look at <a href="../git-http-backend.html">git-http-backend(1)</a>.</td> </tr></table> </div> <div class="paragraph"><p>Since Apache is one of those packages people like to compile @@ -763,10 +761,10 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>On Debian: +<pre><code>On Debian: $ apt-get install apache2 To get apache2 by default started, - edit /etc/default/apache2 and set NO_START=0</tt></pre> + edit /etc/default/apache2 and set NO_START=0</code></pre> </div></div> </li> <li> @@ -775,11 +773,11 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>This could be found under /etc/httpd, or refer to your Apache documentation.</tt></pre> +<pre><code>This could be found under /etc/httpd, or refer to your Apache documentation.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>On Debian: this means being able to edit files under /etc/apache2</tt></pre> +<pre><code>On Debian: this means being able to edit files under /etc/apache2</code></pre> </div></div> </li> <li> @@ -788,19 +786,19 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>'apachectl --graceful' might do. If it doesn't, just stop and +<pre><code>'apachectl --graceful' might do. If it doesn't, just stop and restart apache. Be warning that active connections to your server -might be aborted by this.</tt></pre> +might be aborted by this.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>On Debian: +<pre><code>On Debian: $ /etc/init.d/apache2 restart or $ /etc/init.d/apache2 force-reload (which seems to do the same) This adds symlinks from the /etc/apache2/mods-enabled to -/etc/apache2/mods-available.</tt></pre> +/etc/apache2/mods-available.</code></pre> </div></div> </li> <li> @@ -837,37 +835,37 @@ DocumentRoot /where/ever/httpd.conf" to find your root:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ cd /usr/local/apache/htdocs -$ mkdir my-new-repo.git</tt></pre> +<pre><code>$ cd /usr/local/apache/htdocs +$ mkdir my-new-repo.git</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>On Debian:</tt></pre> +<pre><code>On Debian:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ cd /var/www -$ mkdir my-new-repo.git</tt></pre> +<pre><code>$ cd /var/www +$ mkdir my-new-repo.git</code></pre> </div></div> <div class="paragraph"><p>Initialize a bare repository</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ cd my-new-repo.git -$ git --bare init</tt></pre> +<pre><code>$ cd my-new-repo.git +$ git --bare init</code></pre> </div></div> -<div class="paragraph"><p>Change the ownership to your web-server’s credentials. Use <tt>"grep ^User -httpd.conf"</tt> and <tt>"grep ^Group httpd.conf"</tt> to find out:</p></div> +<div class="paragraph"><p>Change the ownership to your web-server’s credentials. Use <code>"grep ^User +httpd.conf"</code> and <code>"grep ^Group httpd.conf"</code> to find out:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ chown -R www.www .</tt></pre> +<pre><code>$ chown -R www.www .</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>On Debian:</tt></pre> +<pre><code>On Debian:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ chown -R www-data.www-data .</tt></pre> +<pre><code>$ chown -R www-data.www-data .</code></pre> </div></div> <div class="paragraph"><p>If you do not know which user Apache runs as, you can alternatively do a "chmod -R a+w .", inspect the files which are created later on, and @@ -883,27 +881,27 @@ <div class="paragraph"><p>First make sure the dav_module is loaded. For this, insert in httpd.conf:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>LoadModule dav_module libexec/httpd/libdav.so -AddModule mod_dav.c</tt></pre> +<pre><code>LoadModule dav_module libexec/httpd/libdav.so +AddModule mod_dav.c</code></pre> </div></div> <div class="paragraph"><p>Also make sure that this line exists which is the file used for locking DAV operations:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>DAVLockDB "/usr/local/apache2/temp/DAV.lock"</tt></pre> +<pre><code>DAVLockDB "/usr/local/apache2/temp/DAV.lock"</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>On Debian these steps can be performed with:</tt></pre> +<pre><code>On Debian these steps can be performed with:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Enable the dav and dav_fs modules of apache: +<pre><code>Enable the dav and dav_fs modules of apache: $ a2enmod dav_fs (just to be sure. dav_fs might be unneeded, I don't know) $ a2enmod dav The DAV lock is located in /etc/apache2/mods-available/dav_fs.conf: - DAVLockDB /var/lock/apache2/DAVLock</tt></pre> + DAVLockDB /var/lock/apache2/DAVLock</code></pre> </div></div> <div class="paragraph"><p>Of course, it can point somewhere else, but the string is actually just a prefix in some Apache configurations, and therefore the <em>directory</em> has to @@ -911,32 +909,32 @@ <div class="paragraph"><p>Then, add something like this to your httpd.conf</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><Location /my-new-repo.git> +<pre><code><Location /my-new-repo.git> DAV on AuthType Basic AuthName "Git" AuthUserFile /usr/local/apache2/conf/passwd.git Require valid-user -</Location></tt></pre> +</Location></code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>On Debian: - Create (or add to) /etc/apache2/conf.d/git.conf :</tt></pre> +<pre><code>On Debian: + Create (or add to) /etc/apache2/conf.d/git.conf :</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><Location /my-new-repo.git> +<pre><code><Location /my-new-repo.git> DAV on AuthType Basic AuthName "Git" AuthUserFile /etc/apache2/passwd.git Require valid-user -</Location></tt></pre> +</Location></code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Debian automatically reads all files under /etc/apache2/conf.d.</tt></pre> +<pre><code>Debian automatically reads all files under /etc/apache2/conf.d.</code></pre> </div></div> <div class="paragraph"><p>The password file can be somewhere else, but it has to be readable by Apache and preferably not readable by the world.</p></div> @@ -944,8 +942,8 @@ $ htpasswd -c /usr/local/apache2/conf/passwd.git <user></p></div> <div class="literalblock"> <div class="content"> -<pre><tt>On Debian: - $ htpasswd -c /etc/apache2/passwd.git <user></tt></pre> +<pre><code>On Debian: + $ htpasswd -c /etc/apache2/passwd.git <user></code></pre> </div></div> <div class="paragraph"><p>You will be asked a password, and the file is created. Subsequent calls to htpasswd should omit the <em>-c</em> option, since you want to append to the @@ -957,16 +955,16 @@ <div class="paragraph"><p>On Debian:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>To test the WebDAV part, do:</tt></pre> +<pre><code>To test the WebDAV part, do:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ apt-get install litmus -$ litmus http://<servername>/my-new-repo.git <username> <password></tt></pre> +<pre><code>$ apt-get install litmus +$ litmus http://<servername>/my-new-repo.git <username> <password></code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Most tests should pass.</tt></pre> +<pre><code>Most tests should pass.</code></pre> </div></div> <div class="paragraph"><p>A command-line tool to test WebDAV is cadaver. If you prefer GUIs, for example, konqueror can open WebDAV URLs as "webdav://…" or @@ -986,9 +984,9 @@ asked to input your password a <em>lot</em> of times):</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>machine <servername> +<pre><code>machine <servername> login <username> -password <password></tt></pre> +password <password></code></pre> </div></div> <div class="paragraph"><p>…and set permissions: chmod 600 ~/.netrc</p></div> @@ -997,7 +995,7 @@ <div class="paragraph"><p>To check whether all is OK, do:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>curl --netrc --location -v http://<username>@<servername>/my-new-repo.git/HEAD</tt></pre> +<pre><code>curl --netrc --location -v http://<username>@<servername>/my-new-repo.git/HEAD</code></pre> </div></div> <div class="paragraph"><p>…this should give something like <em>ref: refs/heads/master</em>, which is the content of the file HEAD on the server.</p></div> @@ -1005,8 +1003,8 @@ you want to export:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git-config remote.upload.url \ - http://<username>@<servername>/my-new-repo.git/</tt></pre> +<pre><code>$ git-config remote.upload.url \ + http://<username>@<servername>/my-new-repo.git/</code></pre> </div></div> <div class="paragraph"><p>It is important to put the last <em>/</em>; Without it, the server will send a redirect which git-http-push does not (yet) understand, and git-http-push @@ -1019,7 +1017,7 @@ <div class="paragraph"><p>From your client repository, do</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git push upload master</tt></pre> +<pre><code>$ git push upload master</code></pre> </div></div> <div class="paragraph"><p>This pushes branch <em>master</em> (which is assumed to be the branch you want to export) to repository called <em>upload</em>, which we previously @@ -1041,7 +1039,7 @@ <div class="paragraph"><p>If git-http-push says</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>Error: no DAV locking support on remote repo http://...</tt></pre> +<pre><code>Error: no DAV locking support on remote repo http://...</code></pre> </div></div> <div class="paragraph"><p>then it means the web-server did not accept your authentication. Make sure that the user name and password matches in httpd.conf, .netrc and the URL @@ -1055,7 +1053,7 @@ <div class="paragraph"><p>Reading /usr/local/apache2/logs/error_log is often helpful.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>On Debian: Read /var/log/apache2/error.log instead.</tt></pre> +<pre><code>On Debian: Read /var/log/apache2/error.log instead.</code></pre> </div></div> <div class="paragraph"><p>If you access HTTPS locations, Git may fail verifying the SSL certificate (this is return code 60). Setting http.sslVerify=false can @@ -1071,7 +1069,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:01 PDT +Last updated 2014-10-31 13:22:29 PDT </div> </div> </body>
diff --git a/howto/update-hook-example.html b/howto/update-hook-example.html index 30d4d48..fa78b1b 100644 --- a/howto/update-hook-example.html +++ b/howto/update-hook-example.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to use the update hook</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -746,21 +744,21 @@ section of the documentation:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>Before each ref is updated, if $GIT_DIR/hooks/update file exists -and executable, it is called with three parameters:</tt></pre> +<pre><code>Before each ref is updated, if $GIT_DIR/hooks/update file exists +and executable, it is called with three parameters:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>$GIT_DIR/hooks/update refname sha1-old sha1-new</tt></pre> +<pre><code>$GIT_DIR/hooks/update refname sha1-old sha1-new</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The refname parameter is relative to $GIT_DIR; e.g. for the +<pre><code>The refname parameter is relative to $GIT_DIR; e.g. for the master head this is "refs/heads/master". Two sha1 are the object names for the refname before and after the update. Note that the hook is called before the refname is updated, so either sha1-old is 0{40} (meaning there is no such ref yet), or it -should match what is recorded in refname.</tt></pre> +should match what is recorded in refname.</code></pre> </div></div> <div class="paragraph"><p>So if your policy is (1) always require fast-forward push (i.e. never allow "git-push repo +branch:branch"), (2) you @@ -771,7 +769,7 @@ since I posted the original outline]</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>#!/bin/bash +<pre><code>#!/bin/bash umask 002 @@ -905,19 +903,19 @@ esac fi -deny >/dev/null "There are no more rules to check. Denying access"</tt></pre> +deny >/dev/null "There are no more rules to check. Denying access"</code></pre> </div></div> <div class="paragraph"><p>This uses two files, $GIT_DIR/info/allowed-users and allowed-groups, to describe which heads can be pushed into by whom. The format of each file would look like this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>refs/heads/master junio +<pre><code>refs/heads/master junio +refs/heads/pu junio refs/heads/cogito$ pasky refs/heads/bw/.* linus refs/heads/tmp/.* .* -refs/tags/v[0-9].* junio</tt></pre> +refs/tags/v[0-9].* junio</code></pre> </div></div> <div class="paragraph"><p>With this, Linus can push or create "bw/penguin" or "bw/zebra" or "bw/panda" branches, Pasky can do only "cogito", and JC can @@ -930,7 +928,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:00 PDT +Last updated 2014-10-31 13:22:29 PDT </div> </div> </body>
diff --git a/howto/use-git-daemon.html b/howto/use-git-daemon.html index a915ab4..3b6153d 100644 --- a/howto/use-git-daemon.html +++ b/howto/use-git-daemon.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to use git-daemon</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -748,12 +746,12 @@ <div class="paragraph"><p>Another word of warning: if you run</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git ls-remote git://127.0.0.1/rule-the-world.git</tt></pre> +<pre><code>$ git ls-remote git://127.0.0.1/rule-the-world.git</code></pre> </div></div> <div class="paragraph"><p>and you see a message like</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>fatal: The remote end hung up unexpectedly</tt></pre> +<pre><code>fatal: The remote end hung up unexpectedly</code></pre> </div></div> <div class="paragraph"><p>it only means that <em>something</em> went wrong. To find out <em>what</em> went wrong, you have to ask the server. (Git refuses to be more precise for your @@ -762,10 +760,10 @@ <div class="paragraph"><p>With these two caveats, let’s see an example:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git daemon --reuseaddr --verbose --base-path=/home/gitte/git \ - --export-all -- /home/gitte/git/rule-the-world.git</tt></pre> +<pre><code>$ git daemon --reuseaddr --verbose --base-path=/home/gitte/git \ + --export-all -- /home/gitte/git/rule-the-world.git</code></pre> </div></div> -<div class="paragraph"><p>(Of course, unless your user name is <tt>gitte</tt> <em>and</em> your repository is in +<div class="paragraph"><p>(Of course, unless your user name is <code>gitte</code> <em>and</em> your repository is in ~/rule-the-world.git, you have to adjust the paths. If your repository is not bare, be aware that you have to type the path to the .git directory!)</p></div> <div class="paragraph"><p>This invocation tries to reuse the address if it is already taken @@ -774,15 +772,15 @@ <div class="paragraph"><p>Also, it is (relatively) verbose when somebody actually connects to it. It also sets the base path, which means that all the projects which can be accessed using this daemon have to reside in or under that path.</p></div> -<div class="paragraph"><p>The option <tt>--export-all</tt> just means that you <em>don’t</em> have to create a -file named <tt>git-daemon-export-ok</tt> in each exported repository. (Otherwise, +<div class="paragraph"><p>The option <code>--export-all</code> just means that you <em>don’t</em> have to create a +file named <code>git-daemon-export-ok</code> in each exported repository. (Otherwise, git-daemon would complain loudly, and refuse to cooperate.)</p></div> <div class="paragraph"><p>Last of all, the repository which should be exported is specified. It is a good practice to put the paths after a "--" separator.</p></div> <div class="paragraph"><p>Now, test your daemon with</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git ls-remote git://127.0.0.1/rule-the-world.git</tt></pre> +<pre><code>$ git ls-remote git://127.0.0.1/rule-the-world.git</code></pre> </div></div> <div class="paragraph"><p>If this does not work, find out why, and submit a patch to this document.</p></div> </div> @@ -791,7 +789,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:00 PDT +Last updated 2014-10-31 13:22:29 PDT </div> </div> </body>
diff --git a/howto/using-merge-subtree.html b/howto/using-merge-subtree.html index d332cee..ed1555e 100644 --- a/howto/using-merge-subtree.html +++ b/howto/using-merge-subtree.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to use the subtree merge strategy</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -750,19 +748,19 @@ supported by the <em>recursive</em> merge strategy, so just pulling won’t work.</p></div> <div class="paragraph"><p>What you want is the <em>subtree</em> merge strategy, which helps you in such a situation.</p></div> -<div class="paragraph"><p>In this example, let’s say you have the repository at <tt>/path/to/B</tt> (but +<div class="paragraph"><p>In this example, let’s say you have the repository at <code>/path/to/B</code> (but it can be a URL as well, if you want). You want to merge the <em>master</em> -branch of that repository to the <tt>dir-B</tt> subdirectory in your current +branch of that repository to the <code>dir-B</code> subdirectory in your current branch.</p></div> <div class="paragraph"><p>Here is the command sequence you need:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>$ git remote add -f Bproject /path/to/B <b><1></b> +<pre><code>$ git remote add -f Bproject /path/to/B <b><1></b> $ git merge -s ours --no-commit Bproject/master <b><2></b> $ git read-tree --prefix=dir-B/ -u Bproject/master <b><3></b> $ git commit -m "Merge B project as our subdirectory" <b><4></b> -$ git pull -s subtree Bproject master <b><5></b></tt></pre> +$ git pull -s subtree Bproject master <b><5></b></code></pre> </div></div> <div class="colist arabic"><ol> <li> @@ -848,7 +846,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:14:59 PDT +Last updated 2014-10-31 13:22:28 PDT </div> </div> </body>
diff --git a/howto/using-signed-tag-in-pull-request.html b/howto/using-signed-tag-in-pull-request.html index 1230d52..d1c69c2 100644 --- a/howto/using-signed-tag-in-pull-request.html +++ b/howto/using-signed-tag-in-pull-request.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>How to use a signed tag in pull requests</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -744,20 +742,20 @@ project, build on it, publish the result to her public repository, and ask the "upstream" person (often the owner of the project where she forked from) to pull from her public repository. Requesting such a "pull" is made -easy by the <tt>git request-pull</tt> command.</p></div> +easy by the <code>git request-pull</code> command.</p></div> <div class="paragraph"><p>Earlier, a typical pull request may have started like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> The following changes since commit 406da78032179...: +<pre><code> The following changes since commit 406da78032179...: Froboz 3.2 (2011-09-30 14:20:57 -0700) are available in the Git repository at: - example.com:/git/froboz.git for-xyzzy</tt></pre> + example.com:/git/froboz.git for-xyzzy</code></pre> </div></div> <div class="paragraph"><p>followed by a shortlog of the changes and a diffstat.</p></div> -<div class="paragraph"><p>The request was for a branch name (e.g. <tt>for-xyzzy</tt>) in the public +<div class="paragraph"><p>The request was for a branch name (e.g. <code>for-xyzzy</code>) in the public repository of the contributor, and even though it stated where the contributor forked her work from, the message did not say anything about the commit to expect at the tip of the for-xyzzy branch. If the site that @@ -768,7 +766,7 @@ history.</p></div> <div class="paragraph"><p>Starting from Git release v1.7.9, a contributor can add a signed tag to the commit at the tip of the history and ask the integrator to pull that -signed tag. When the integrator runs <tt>git pull</tt>, the signed tag is +signed tag. When the integrator runs <code>git pull</code>, the signed tag is automatically verified to assure that the history is not tampered with. In addition, the resulting merge commit records the content of the signed tag, so that other people can verify that the branch merged by the @@ -782,15 +780,15 @@ <div class="sect1"> <h2 id="_a_contributor_or_a_lieutenant">A contributor or a lieutenant</h2> <div class="sectionbody"> -<div class="paragraph"><p>After preparing her work to be pulled, the contributor uses <tt>git tag -s</tt> +<div class="paragraph"><p>After preparing her work to be pulled, the contributor uses <code>git tag -s</code> to create a signed tag:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git checkout work +<pre><code> $ git checkout work $ ... "git pull" from sublieutenants, "git commit" your own work ... - $ git tag -s -m "Completed frotz feature" frotz-for-xyzzy work</tt></pre> + $ git tag -s -m "Completed frotz feature" frotz-for-xyzzy work</code></pre> </div></div> -<div class="paragraph"><p>Note that this example uses the <tt>-m</tt> option to create a signed tag with +<div class="paragraph"><p>Note that this example uses the <code>-m</code> option to create a signed tag with just a one-liner message, but this is for illustration purposes only. It is advisable to compose a well-written explanation of what the topic does to justify why it is worthwhile for the integrator to pull it, as this @@ -799,17 +797,17 @@ <div class="paragraph"><p>Then she pushes the tag out to her public repository:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git push example.com:/git/froboz.git/ +frotz-for-xyzzy</tt></pre> +<pre><code> $ git push example.com:/git/froboz.git/ +frotz-for-xyzzy</code></pre> </div></div> -<div class="paragraph"><p>There is no need to push the <tt>work</tt> branch or anything else.</p></div> +<div class="paragraph"><p>There is no need to push the <code>work</code> branch or anything else.</p></div> <div class="paragraph"><p>Note that the above command line used a plus sign at the beginning of -<tt>+frotz-for-xyzzy</tt> to allow forcing the update of a tag, as the same +<code>+frotz-for-xyzzy</code> to allow forcing the update of a tag, as the same contributor may want to reuse a signed tag with the same name after the previous pull request has already been responded to.</p></div> <div class="paragraph"><p>The contributor then prepares a message to request a "pull":</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git request-pull v3.2 example.com:/git/froboz.git/ frotz-for-xyzzy >msg.txt</tt></pre> +<pre><code> $ git request-pull v3.2 example.com:/git/froboz.git/ frotz-for-xyzzy >msg.txt</code></pre> </div></div> <div class="paragraph"><p>The arguments are:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -834,7 +832,7 @@ <div class="paragraph"><p>The resulting msg.txt file begins like so:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> The following changes since commit 406da78032179...: +<pre><code> The following changes since commit 406da78032179...: Froboz 3.2 (2011-09-30 14:20:57 -0700) @@ -848,10 +846,10 @@ ----------------------------------------------- Completed frotz feature - -----------------------------------------------</tt></pre> + -----------------------------------------------</code></pre> </div></div> <div class="paragraph"><p>followed by a shortlog of the changes and a diffstat. Comparing this with -the earlier illustration of the output from the traditional <tt>git request-pull</tt> +the earlier illustration of the output from the traditional <code>git request-pull</code> command, the reader should notice that:</p></div> <div class="olist arabic"><ol class="arabic"> <li> @@ -879,7 +877,7 @@ integrates the tag named in the request, with:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git pull example.com:/git/froboz.git/ tags/frotz-for-xyzzy</tt></pre> +<pre><code> $ git pull example.com:/git/froboz.git/ tags/frotz-for-xyzzy</code></pre> </div></div> <div class="paragraph"><p>This operation will always open an editor to allow the integrator to fine tune the commit log message when merging a signed tag. Also, pulling a @@ -890,20 +888,20 @@ <div class="paragraph"><p>In the editor, the integrator will see something like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> Merge tag 'frotz-for-xyzzy' of example.com:/git/froboz.git/ +<pre><code> Merge tag 'frotz-for-xyzzy' of example.com:/git/froboz.git/ Completed frotz feature # gpg: Signature made Fri 02 Dec 2011 10:03:01 AM PST using RSA key ID 96AFE6CB - # gpg: Good signature from "Con Tributor <nitfol@example.com>"</tt></pre> + # gpg: Good signature from "Con Tributor <nitfol@example.com>"</code></pre> </div></div> <div class="paragraph"><p>Notice that the message recorded in the signed tag "Completed frotz feature" appears here, and again that is why it is important for the contributor to explain her work well when creating the signed tag.</p></div> -<div class="paragraph"><p>As usual, the lines commented with <tt>#</tt> are stripped out. The resulting +<div class="paragraph"><p>As usual, the lines commented with <code>#</code> are stripped out. The resulting commit records the signed tag used for this validation in a hidden field so that it can later be used by others to audit the history. There is no need for the integrator to keep a separate copy of the tag in his -repository (i.e. <tt>git tag -l</tt> won’t list the <tt>frotz-for-xyzzy</tt> tag in the +repository (i.e. <code>git tag -l</code> won’t list the <code>frotz-for-xyzzy</code> tag in the above example), and there is no need to publish the tag to his public repository, either.</p></div> <div class="paragraph"><p>After the integrator responds to the pull request and her work becomes @@ -912,20 +910,20 @@ of her public repository clean, with:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git push example.com:/git/froboz.git :frotz-for-xyzzy</tt></pre> +<pre><code> $ git push example.com:/git/froboz.git :frotz-for-xyzzy</code></pre> </div></div> </div> </div> <div class="sect1"> <h2 id="_auditors">Auditors</h2> <div class="sectionbody"> -<div class="paragraph"><p>The <tt>--show-signature</tt> option can be given to <tt>git log</tt> or <tt>git show</tt> and +<div class="paragraph"><p>The <code>--show-signature</code> option can be given to <code>git log</code> or <code>git show</code> and shows the verification status of the embedded signed tag in merge commits created when the integrator responded to a pull request of a signed tag.</p></div> -<div class="paragraph"><p>A typical output from <tt>git show --show-signature</tt> may look like this:</p></div> +<div class="paragraph"><p>A typical output from <code>git show --show-signature</code> may look like this:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> $ git show --show-signature +<pre><code> $ git show --show-signature commit 02306ef6a3498a39118aef9df7975bdb50091585 merged tag 'frotz-for-xyzzy' gpg: Signature made Fri 06 Jan 2012 12:41:49 PM PST using RSA key ID 96AFE6CB @@ -940,7 +938,7 @@ * tag 'frotz-for-xyzzy' (100 commits) Add tests and documentation for frotz - ...</tt></pre> + ...</code></pre> </div></div> <div class="paragraph"><p>There is no need for the auditor to explicitly fetch the contributor’s signature, or to even be aware of what tag(s) the contributor and integrator @@ -952,7 +950,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:00 PDT +Last updated 2014-10-31 13:22:28 PDT </div> </div> </body>
diff --git a/technical/api-argv-array.html b/technical/api-argv-array.html index dffe190..1b4511c 100644 --- a/technical/api-argv-array.html +++ b/technical/api-argv-array.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>argv-array API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -742,15 +740,15 @@ <div class="sectionbody"> <div class="paragraph"><p>The argv-array API allows one to dynamically build and store NULL-terminated lists. An argv-array maintains the invariant that the -<tt>argv</tt> member always points to a non-NULL array, and that the array is -always NULL-terminated at the element pointed to by <tt>argv[argc]</tt>. This +<code>argv</code> member always points to a non-NULL array, and that the array is +always NULL-terminated at the element pointed to by <code>argv[argc]</code>. This makes the result suitable for passing to functions expecting to receive argv from main(), or the <a href="api-run-command.html">run-command API</a>.</p></div> <div class="paragraph"><p>The <a href="api-string-list.html">string-list API</a> is similar, but cannot be used for these purposes; instead of storing a straight string pointer, -it contains an item structure with a <tt>util</tt> field that is not compatible +it contains an item structure with a <code>util</code> field that is not compatible with the traditional argv interface.</p></div> -<div class="paragraph"><p>Each <tt>argv_array</tt> manages its own memory. Any strings pushed into the +<div class="paragraph"><p>Each <code>argv_array</code> manages its own memory. Any strings pushed into the array are duplicated, and all memory is freed by argv_array_clear().</p></div> </div> </div> @@ -759,13 +757,13 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>struct argv_array</tt> +<code>struct argv_array</code> </dt> <dd> <p> A single array. This should be initialized by assignment from - <tt>ARGV_ARRAY_INIT</tt>, or by calling <tt>argv_array_init</tt>. The <tt>argv</tt> - member contains the actual array; the <tt>argc</tt> member contains the + <code>ARGV_ARRAY_INIT</code>, or by calling <code>argv_array_init</code>. The <code>argv</code> + member contains the actual array; the <code>argc</code> member contains the number of elements in the array, not including the terminating NULL. </p> @@ -778,16 +776,16 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>argv_array_init</tt> +<code>argv_array_init</code> </dt> <dd> <p> Initialize an array. This is no different than assigning from - <tt>ARGV_ARRAY_INIT</tt>. + <code>ARGV_ARRAY_INIT</code>. </p> </dd> <dt class="hdlist1"> -<tt>argv_array_push</tt> +<code>argv_array_push</code> </dt> <dd> <p> @@ -795,26 +793,26 @@ </p> </dd> <dt class="hdlist1"> -<tt>argv_array_pushl</tt> +<code>argv_array_pushl</code> </dt> <dd> <p> Push a list of strings onto the end of the array. The arguments - should be a list of <tt>const char *</tt> strings, terminated by a NULL + should be a list of <code>const char *</code> strings, terminated by a NULL argument. </p> </dd> <dt class="hdlist1"> -<tt>argv_array_pushf</tt> +<code>argv_array_pushf</code> </dt> <dd> <p> Format a string and push it onto the end of the array. This is a - convenience wrapper combining <tt>strbuf_addf</tt> and <tt>argv_array_push</tt>. + convenience wrapper combining <code>strbuf_addf</code> and <code>argv_array_push</code>. </p> </dd> <dt class="hdlist1"> -<tt>argv_array_pop</tt> +<code>argv_array_pop</code> </dt> <dd> <p> @@ -823,7 +821,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>argv_array_clear</tt> +<code>argv_array_clear</code> </dt> <dd> <p>
diff --git a/technical/api-builtin.html b/technical/api-builtin.html index 6865a62..9dc8a5d 100644 --- a/technical/api-builtin.html +++ b/technical/api-builtin.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>builtin API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -746,32 +744,32 @@ <div class="olist arabic"><ol class="arabic"> <li> <p> -Define the implementation of the built-in command <tt>foo</tt> with +Define the implementation of the built-in command <code>foo</code> with signature: </p> <div class="literalblock"> <div class="content"> -<pre><tt>int cmd_foo(int argc, const char **argv, const char *prefix);</tt></pre> +<pre><code>int cmd_foo(int argc, const char **argv, const char *prefix);</code></pre> </div></div> </li> <li> <p> -Add the external declaration for the function to <tt>builtin.h</tt>. +Add the external declaration for the function to <code>builtin.h</code>. </p> </li> <li> <p> -Add the command to the <tt>commands[]</tt> table defined in <tt>git.c</tt>. +Add the command to the <code>commands[]</code> table defined in <code>git.c</code>. The entry should look like: </p> <div class="literalblock"> <div class="content"> -<pre><tt>{ "foo", cmd_foo, <options> },</tt></pre> +<pre><code>{ "foo", cmd_foo, <options> },</code></pre> </div></div> <div class="paragraph"><p>where options is the bitwise-or of:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>RUN_SETUP</tt> +<code>RUN_SETUP</code> </dt> <dd> <p> @@ -782,7 +780,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>RUN_SETUP_GENTLY</tt> +<code>RUN_SETUP_GENTLY</code> </dt> <dd> <p> @@ -791,7 +789,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>USE_PAGER</tt> +<code>USE_PAGER</code> </dt> <dd> <p> @@ -800,43 +798,43 @@ </p> </dd> <dt class="hdlist1"> -<tt>NEED_WORK_TREE</tt> +<code>NEED_WORK_TREE</code> </dt> <dd> <p> Make sure there is a work tree, i.e. the command cannot act on bare repositories. - This only makes sense when <tt>RUN_SETUP</tt> is also set. + This only makes sense when <code>RUN_SETUP</code> is also set. </p> </dd> </dl></div> </li> <li> <p> -Add <tt>builtin/foo.o</tt> to <tt>BUILTIN_OBJS</tt> in <tt>Makefile</tt>. +Add <code>builtin/foo.o</code> to <code>BUILTIN_OBJS</code> in <code>Makefile</code>. </p> </li> </ol></div> -<div class="paragraph"><p>Additionally, if <tt>foo</tt> is a new command, there are 3 more things to do:</p></div> +<div class="paragraph"><p>Additionally, if <code>foo</code> is a new command, there are 3 more things to do:</p></div> <div class="olist arabic"><ol class="arabic"> <li> <p> -Add tests to <tt>t/</tt> directory. +Add tests to <code>t/</code> directory. </p> </li> <li> <p> -Write documentation in <tt>Documentation/git-foo.txt</tt>. +Write documentation in <code>Documentation/git-foo.txt</code>. </p> </li> <li> <p> -Add an entry for <tt>git-foo</tt> to <tt>command-list.txt</tt>. +Add an entry for <code>git-foo</code> to <code>command-list.txt</code>. </p> </li> <li> <p> -Add an entry for <tt>/git-foo</tt> to <tt>.gitignore</tt>. +Add an entry for <code>/git-foo</code> to <code>.gitignore</code>. </p> </li> </ol></div> @@ -845,16 +843,16 @@ <div class="sect1"> <h2 id="_how_a_built_in_is_called">How a built-in is called</h2> <div class="sectionbody"> -<div class="paragraph"><p>The implementation <tt>cmd_foo()</tt> takes three parameters, <tt>argc</tt>, <tt>argv, -and `prefix</tt>. The first two are similar to what <tt>main()</tt> of a +<div class="paragraph"><p>The implementation <code>cmd_foo()</code> takes three parameters, <code>argc</code>, <code>argv, +and `prefix</code>. The first two are similar to what <code>main()</code> of a standalone command would be called with.</p></div> -<div class="paragraph"><p>When <tt>RUN_SETUP</tt> is specified in the <tt>commands[]</tt> table, and when you -were started from a subdirectory of the work tree, <tt>cmd_foo()</tt> is called -after chdir(2) to the top of the work tree, and <tt>prefix</tt> gets the path +<div class="paragraph"><p>When <code>RUN_SETUP</code> is specified in the <code>commands[]</code> table, and when you +were started from a subdirectory of the work tree, <code>cmd_foo()</code> is called +after chdir(2) to the top of the work tree, and <code>prefix</code> gets the path to the subdirectory the command started from. This allows you to convert a user-supplied pathname (typically relative to that directory) to a pathname relative to the top of the work tree.</p></div> -<div class="paragraph"><p>The return value from <tt>cmd_foo()</tt> becomes the exit status of the +<div class="paragraph"><p>The return value from <code>cmd_foo()</code> becomes the exit status of the command.</p></div> </div> </div>
diff --git a/technical/api-config.html b/technical/api-config.html index 3ddf2ba..81d2b80 100644 --- a/technical/api-config.html +++ b/technical/api-config.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>config API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -761,7 +759,7 @@ the name of the parsed variable. This is in canonical "flat" form: the section, subsection, and variable segments will be separated by dots, and the section and variable segments will be all lowercase. E.g., - <tt>core.ignorecase</tt>, <tt>diff.SomeType.textconv</tt>. + <code>core.ignorecase</code>, <code>diff.SomeType.textconv</code>. </p> </li> <li> @@ -787,44 +785,44 @@ <div class="sectionbody"> <div class="paragraph"><p>Most programs will simply want to look up variables in all config files that Git knows about, using the normal precedence rules. To do this, -call <tt>git_config</tt> with a callback function and void data pointer.</p></div> -<div class="paragraph"><p><tt>git_config</tt> will read all config sources in order of increasing +call <code>git_config</code> with a callback function and void data pointer.</p></div> +<div class="paragraph"><p><code>git_config</code> will read all config sources in order of increasing priority. Thus a callback should typically overwrite previously-seen -entries with new ones (e.g., if both the user-wide <tt>~/.gitconfig</tt> and -repo-specific <tt>.git/config</tt> contain <tt>color.ui</tt>, the config machinery +entries with new ones (e.g., if both the user-wide <code>~/.gitconfig</code> and +repo-specific <code>.git/config</code> contain <code>color.ui</code>, the config machinery will first feed the user-wide one to the callback, and then the repo-specific one; by overwriting, the higher-priority repo-specific value is left at the end).</p></div> -<div class="paragraph"><p>The <tt>git_config_with_options</tt> function lets the caller examine config -while adjusting some of the default behavior of <tt>git_config</tt>. It should +<div class="paragraph"><p>The <code>git_config_with_options</code> function lets the caller examine config +while adjusting some of the default behavior of <code>git_config</code>. It should almost never be used by "regular" Git code that is looking up configuration variables. It is intended for advanced callers like -<tt>git-config</tt>, which are intentionally tweaking the normal config-lookup +<code>git-config</code>, which are intentionally tweaking the normal config-lookup process. It takes two extra parameters:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>filename</tt> +<code>filename</code> </dt> <dd> <p> If this parameter is non-NULL, it specifies the name of a file to parse for configuration, rather than looking in the usual files. Regular -<tt>git_config</tt> defaults to <tt>NULL</tt>. +<code>git_config</code> defaults to <code>NULL</code>. </p> </dd> <dt class="hdlist1"> -<tt>respect_includes</tt> +<code>respect_includes</code> </dt> <dd> <p> Specify whether include directives should be followed in parsed files. -Regular <tt>git_config</tt> defaults to <tt>1</tt>. +Regular <code>git_config</code> defaults to <code>1</code>. </p> </dd> </dl></div> -<div class="paragraph"><p>There is a special version of <tt>git_config</tt> called <tt>git_config_early</tt>. +<div class="paragraph"><p>There is a special version of <code>git_config</code> called <code>git_config_early</code>. This version takes an additional parameter to specify the repository -config, instead of having it looked up via <tt>git_path</tt>. This is useful +config, instead of having it looked up via <code>git_path</code>. This is useful early in a Git program before the repository has been found. Unless you’re working with early setup code, you probably don’t want to use this.</p></div> @@ -834,43 +832,43 @@ <h2 id="_reading_specific_files">Reading Specific Files</h2> <div class="sectionbody"> <div class="paragraph"><p>To read a specific file in git-config format, use -<tt>git_config_from_file</tt>. This takes the same callback and data parameters -as <tt>git_config</tt>.</p></div> +<code>git_config_from_file</code>. This takes the same callback and data parameters +as <code>git_config</code>.</p></div> </div> </div> <div class="sect1"> <h2 id="_querying_for_specific_variables">Querying For Specific Variables</h2> <div class="sectionbody"> <div class="paragraph"><p>For programs wanting to query for specific variables in a non-callback -manner, the config API provides two functions <tt>git_config_get_value</tt> -and <tt>git_config_get_value_multi</tt>. They both read values from an internal +manner, the config API provides two functions <code>git_config_get_value</code> +and <code>git_config_get_value_multi</code>. They both read values from an internal cache generated previously from reading the config files.</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>int git_config_get_value(const char *key, const char **value)</tt> +<code>int git_config_get_value(const char *key, const char **value)</code> </dt> <dd> <p> - Finds the highest-priority value for the configuration variable <tt>key</tt>, - stores the pointer to it in <tt>value</tt> and returns 0. When the - configuration variable <tt>key</tt> is not found, returns 1 without touching - <tt>value</tt>. The caller should not free or modify <tt>value</tt>, as it is owned + Finds the highest-priority value for the configuration variable <code>key</code>, + stores the pointer to it in <code>value</code> and returns 0. When the + configuration variable <code>key</code> is not found, returns 1 without touching + <code>value</code>. The caller should not free or modify <code>value</code>, as it is owned by the cache. </p> </dd> <dt class="hdlist1"> -<tt>const struct string_list *git_config_get_value_multi(const char *key)</tt> +<code>const struct string_list *git_config_get_value_multi(const char *key)</code> </dt> <dd> <p> Finds and returns the value list, sorted in order of increasing priority - for the configuration variable <tt>key</tt>. When the configuration variable - <tt>key</tt> is not found, returns NULL. The caller should not free or modify + for the configuration variable <code>key</code>. When the configuration variable + <code>key</code> is not found, returns NULL. The caller should not free or modify the returned pointer, as it is owned by the cache. </p> </dd> <dt class="hdlist1"> -<tt>void git_config_clear(void)</tt> +<code>void git_config_clear(void)</code> </dt> <dd> <p> @@ -882,103 +880,103 @@ as well as retrieval for the queried variable, including:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>int git_config_get_int(const char *key, int *dest)</tt> +<code>int git_config_get_int(const char *key, int *dest)</code> </dt> <dd> <p> Finds and parses the value to an integer for the configuration variable - <tt>key</tt>. Dies on error; otherwise, stores the value of the parsed integer in - <tt>dest</tt> and returns 0. When the configuration variable <tt>key</tt> is not found, - returns 1 without touching <tt>dest</tt>. + <code>key</code>. Dies on error; otherwise, stores the value of the parsed integer in + <code>dest</code> and returns 0. When the configuration variable <code>key</code> is not found, + returns 1 without touching <code>dest</code>. </p> </dd> <dt class="hdlist1"> -<tt>int git_config_get_ulong(const char *key, unsigned long *dest)</tt> +<code>int git_config_get_ulong(const char *key, unsigned long *dest)</code> </dt> <dd> <p> - Similar to <tt>git_config_get_int</tt> but for unsigned longs. + Similar to <code>git_config_get_int</code> but for unsigned longs. </p> </dd> <dt class="hdlist1"> -<tt>int git_config_get_bool(const char *key, int *dest)</tt> +<code>int git_config_get_bool(const char *key, int *dest)</code> </dt> <dd> <p> Finds and parses the value into a boolean value, for the configuration - variable <tt>key</tt> respecting keywords like "true" and "false". Integer + variable <code>key</code> respecting keywords like "true" and "false". Integer values are converted into true/false values (when they are non-zero or zero, respectively). Other values cause a die(). If parsing is successful, - stores the value of the parsed result in <tt>dest</tt> and returns 0. When the - configuration variable <tt>key</tt> is not found, returns 1 without touching - <tt>dest</tt>. + stores the value of the parsed result in <code>dest</code> and returns 0. When the + configuration variable <code>key</code> is not found, returns 1 without touching + <code>dest</code>. </p> </dd> <dt class="hdlist1"> -<tt>int git_config_get_bool_or_int(const char *key, int *is_bool, int *dest)</tt> +<code>int git_config_get_bool_or_int(const char *key, int *is_bool, int *dest)</code> </dt> <dd> <p> - Similar to <tt>git_config_get_bool</tt>, except that integers are copied as-is, - and <tt>is_bool</tt> flag is unset. + Similar to <code>git_config_get_bool</code>, except that integers are copied as-is, + and <code>is_bool</code> flag is unset. </p> </dd> <dt class="hdlist1"> -<tt>int git_config_get_maybe_bool(const char *key, int *dest)</tt> +<code>int git_config_get_maybe_bool(const char *key, int *dest)</code> </dt> <dd> <p> - Similar to <tt>git_config_get_bool</tt>, except that it returns -1 on error + Similar to <code>git_config_get_bool</code>, except that it returns -1 on error rather than dying. </p> </dd> <dt class="hdlist1"> -<tt>int git_config_get_string_const(const char *key, const char **dest)</tt> +<code>int git_config_get_string_const(const char *key, const char **dest)</code> </dt> <dd> <p> - Allocates and copies the retrieved string into the <tt>dest</tt> parameter for - the configuration variable <tt>key</tt>; if NULL string is given, prints an - error message and returns -1. When the configuration variable <tt>key</tt> is - not found, returns 1 without touching <tt>dest</tt>. + Allocates and copies the retrieved string into the <code>dest</code> parameter for + the configuration variable <code>key</code>; if NULL string is given, prints an + error message and returns -1. When the configuration variable <code>key</code> is + not found, returns 1 without touching <code>dest</code>. </p> </dd> <dt class="hdlist1"> -<tt>int git_config_get_string(const char *key, char **dest)</tt> +<code>int git_config_get_string(const char *key, char **dest)</code> </dt> <dd> <p> - Similar to <tt>git_config_get_string_const</tt>, except that retrieved value - copied into the <tt>dest</tt> parameter is a mutable string. + Similar to <code>git_config_get_string_const</code>, except that retrieved value + copied into the <code>dest</code> parameter is a mutable string. </p> </dd> <dt class="hdlist1"> -<tt>int git_config_get_pathname(const char *key, const char **dest)</tt> +<code>int git_config_get_pathname(const char *key, const char **dest)</code> </dt> <dd> <p> - Similar to <tt>git_config_get_string</tt>, but expands <tt>~</tt> or <tt>~user</tt> into + Similar to <code>git_config_get_string</code>, but expands <code>~</code> or <code>~user</code> into the user’s home directory when found at the beginning of the path. </p> </dd> <dt class="hdlist1"> -<tt>git_die_config(const char *key, const char *err, ...)</tt> +<code>git_die_config(const char *key, const char *err, ...)</code> </dt> <dd> <p> - First prints the error message specified by the caller in <tt>err</tt> and then + First prints the error message specified by the caller in <code>err</code> and then dies printing the line number and the file name of the highest priority - value for the configuration variable <tt>key</tt>. + value for the configuration variable <code>key</code>. </p> </dd> <dt class="hdlist1"> -<tt>void git_die_config_linenr(const char *key, const char *filename, int linenr)</tt> +<code>void git_die_config_linenr(const char *key, const char *filename, int linenr)</code> </dt> <dd> <p> Helper function which formats the die error message according to the - parameters entered. Used by <tt>git_die_config()</tt>. It can be used by callers - handling <tt>git_config_get_value_multi()</tt> to print the correct error message + parameters entered. Used by <code>git_die_config()</code>. It can be used by callers + handling <code>git_config_get_value_multi()</code> to print the correct error message for the desired value. </p> </dd> @@ -993,7 +991,7 @@ a number of helper functions, including:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>git_config_int</tt> +<code>git_config_int</code> </dt> <dd> <p> @@ -1002,15 +1000,15 @@ </p> </dd> <dt class="hdlist1"> -<tt>git_config_ulong</tt> +<code>git_config_ulong</code> </dt> <dd> <p> -Identical to <tt>git_config_int</tt>, but for unsigned longs. +Identical to <code>git_config_int</code>, but for unsigned longs. </p> </dd> <dt class="hdlist1"> -<tt>git_config_bool</tt> +<code>git_config_bool</code> </dt> <dd> <p> @@ -1021,38 +1019,38 @@ </p> </dd> <dt class="hdlist1"> -<tt>git_config_bool_or_int</tt> +<code>git_config_bool_or_int</code> </dt> <dd> <p> -Same as <tt>git_config_bool</tt>, except that integers are returned as-is, and -an <tt>is_bool</tt> flag is unset. +Same as <code>git_config_bool</code>, except that integers are returned as-is, and +an <code>is_bool</code> flag is unset. </p> </dd> <dt class="hdlist1"> -<tt>git_config_maybe_bool</tt> +<code>git_config_maybe_bool</code> </dt> <dd> <p> -Same as <tt>git_config_bool</tt>, except that it returns -1 on error rather +Same as <code>git_config_bool</code>, except that it returns -1 on error rather than dying. </p> </dd> <dt class="hdlist1"> -<tt>git_config_string</tt> +<code>git_config_string</code> </dt> <dd> <p> -Allocates and copies the value string into the <tt>dest</tt> parameter; if no +Allocates and copies the value string into the <code>dest</code> parameter; if no string is given, prints an error message and returns -1. </p> </dd> <dt class="hdlist1"> -<tt>git_config_pathname</tt> +<code>git_config_pathname</code> </dt> <dd> <p> -Similar to <tt>git_config_string</tt>, but expands <tt>~</tt> or <tt>~user</tt> into the +Similar to <code>git_config_string</code>, but expands <code>~</code> or <code>~user</code> into the user’s home directory when found at the beginning of the path. </p> </dd> @@ -1063,33 +1061,33 @@ <h2 id="_include_directives">Include Directives</h2> <div class="sectionbody"> <div class="paragraph"><p>By default, the config parser does not respect include directives. -However, a caller can use the special <tt>git_config_include</tt> wrapper +However, a caller can use the special <code>git_config_include</code> wrapper callback to support them. To do so, you simply wrap your "real" callback -function and data pointer in a <tt>struct config_include_data</tt>, and pass +function and data pointer in a <code>struct config_include_data</code>, and pass the wrapper to the regular config-reading functions. For example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>int read_file_with_include(const char *file, config_fn_t fn, void *data) +<pre><code>int read_file_with_include(const char *file, config_fn_t fn, void *data) { struct config_include_data inc = CONFIG_INCLUDE_INIT; inc.fn = fn; inc.data = data; return git_config_from_file(git_config_include, file, &inc); -}</tt></pre> +}</code></pre> </div></div> -<div class="paragraph"><p><tt>git_config</tt> respects includes automatically. The lower-level -<tt>git_config_from_file</tt> does not.</p></div> +<div class="paragraph"><p><code>git_config</code> respects includes automatically. The lower-level +<code>git_config_from_file</code> does not.</p></div> </div> </div> <div class="sect1"> <h2 id="_custom_configsets">Custom Configsets</h2> <div class="sectionbody"> -<div class="paragraph"><p>A <tt>config_set</tt> can be used to construct an in-memory cache for -config-like files that the caller specifies (i.e., files like <tt>.gitmodules</tt>, -<tt>~/.gitconfig</tt> etc.). For example,</p></div> +<div class="paragraph"><p>A <code>config_set</code> can be used to construct an in-memory cache for +config-like files that the caller specifies (i.e., files like <code>.gitmodules</code>, +<code>~/.gitconfig</code> etc.). For example,</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>struct config_set gm_config; +<pre><code>struct config_set gm_config; git_configset_init(&gm_config); int b; /* we add config files to the config_set */ @@ -1101,24 +1099,24 @@ } /* when we are done with the configset */ -git_configset_clear(&gm_config);</tt></pre> +git_configset_clear(&gm_config);</code></pre> </div></div> <div class="paragraph"><p>Configset API provides functions for the above mentioned work flow, including:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>void git_configset_init(struct config_set *cs)</tt> +<code>void git_configset_init(struct config_set *cs)</code> </dt> <dd> <p> - Initializes the config_set <tt>cs</tt>. + Initializes the config_set <code>cs</code>. </p> </dd> <dt class="hdlist1"> -<tt>int git_configset_add_file(struct config_set *cs, const char *filename)</tt> +<code>int git_configset_add_file(struct config_set *cs, const char *filename)</code> </dt> <dd> <p> - Parses the file and adds the variable-value pairs to the <tt>config_set</tt>, + Parses the file and adds the variable-value pairs to the <code>config_set</code>, dies if there is an error in parsing the file. Returns 0 on success, or -1 if the file does not exist or is inaccessible. The user has to decide if he wants to free the incomplete configset or continue using it when @@ -1126,41 +1124,41 @@ </p> </dd> <dt class="hdlist1"> -<tt>int git_configset_get_value(struct config_set *cs, const char *key, const char **value)</tt> +<code>int git_configset_get_value(struct config_set *cs, const char *key, const char **value)</code> </dt> <dd> <p> - Finds the highest-priority value for the configuration variable <tt>key</tt> - and config set <tt>cs</tt>, stores the pointer to it in <tt>value</tt> and returns 0. - When the configuration variable <tt>key</tt> is not found, returns 1 without - touching <tt>value</tt>. The caller should not free or modify <tt>value</tt>, as it + Finds the highest-priority value for the configuration variable <code>key</code> + and config set <code>cs</code>, stores the pointer to it in <code>value</code> and returns 0. + When the configuration variable <code>key</code> is not found, returns 1 without + touching <code>value</code>. The caller should not free or modify <code>value</code>, as it is owned by the cache. </p> </dd> <dt class="hdlist1"> -<tt>const struct string_list *git_configset_get_value_multi(struct config_set *cs, const char *key)</tt> +<code>const struct string_list *git_configset_get_value_multi(struct config_set *cs, const char *key)</code> </dt> <dd> <p> Finds and returns the value list, sorted in order of increasing priority - for the configuration variable <tt>key</tt> and config set <tt>cs</tt>. When the - configuration variable <tt>key</tt> is not found, returns NULL. The caller + for the configuration variable <code>key</code> and config set <code>cs</code>. When the + configuration variable <code>key</code> is not found, returns NULL. The caller should not free or modify the returned pointer, as it is owned by the cache. </p> </dd> <dt class="hdlist1"> -<tt>void git_configset_clear(struct config_set *cs)</tt> +<code>void git_configset_clear(struct config_set *cs)</code> </dt> <dd> <p> - Clears <tt>config_set</tt> structure, removes all saved variable-value pairs. + Clears <code>config_set</code> structure, removes all saved variable-value pairs. </p> </dd> </dl></div> -<div class="paragraph"><p>In addition to above functions, the <tt>config_set</tt> API provides type specific -functions in the vein of <tt>git_config_get_int</tt> and family but with an extra -parameter, pointer to struct <tt>config_set</tt>. -They all behave similarly to the <tt>git_config_get*()</tt> family described in +<div class="paragraph"><p>In addition to above functions, the <code>config_set</code> API provides type specific +functions in the vein of <code>git_config_get_int</code> and family but with an extra +parameter, pointer to struct <code>config_set</code>. +They all behave similarly to the <code>git_config_get*()</code> family described in "Querying For Specific Variables" above.</p></div> </div> </div> @@ -1168,10 +1166,10 @@ <h2 id="_writing_config_files">Writing Config Files</h2> <div class="sectionbody"> <div class="paragraph"><p>Git gives multiple entry points in the Config API to write config values to -files namely <tt>git_config_set_in_file</tt> and <tt>git_config_set</tt>, which write to -a specific config file or to <tt>.git/config</tt> respectively. They both take a +files namely <code>git_config_set_in_file</code> and <code>git_config_set</code>, which write to +a specific config file or to <code>.git/config</code> respectively. They both take a key/value pair as parameter. -In the end they both call <tt>git_config_set_multivar_in_file</tt> which takes four +In the end they both call <code>git_config_set_multivar_in_file</code> which takes four parameters:</p></div> <div class="ulist"><ul> <li> @@ -1184,7 +1182,7 @@ the name of key, as a string. This is in canonical "flat" form: the section, subsection, and variable segments will be separated by dots, and the section and variable segments will be all lowercase. - E.g., <tt>core.ignorecase</tt>, <tt>diff.SomeType.textconv</tt>. + E.g., <code>core.ignorecase</code>, <code>diff.SomeType.textconv</code>. </p> </li> <li> @@ -1208,10 +1206,10 @@ </li> </ul></div> <div class="paragraph"><p>It returns 0 on success.</p></div> -<div class="paragraph"><p>Also, there are functions <tt>git_config_rename_section</tt> and -<tt>git_config_rename_section_in_file</tt> with parameters <tt>old_name</tt> and <tt>new_name</tt> +<div class="paragraph"><p>Also, there are functions <code>git_config_rename_section</code> and +<code>git_config_rename_section_in_file</code> with parameters <code>old_name</code> and <code>new_name</code> for renaming or removing sections in the config files. If NULL is passed -through <tt>new_name</tt> parameter, the section will be removed from the config file.</p></div> +through <code>new_name</code> parameter, the section will be removed from the config file.</p></div> </div> </div> </div>
diff --git a/technical/api-credentials.html b/technical/api-credentials.html index b736669..4738e48 100644 --- a/technical/api-credentials.html +++ b/technical/api-credentials.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>credentials API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -757,7 +755,7 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt>+-----------------------+ +<pre><code>+-----------------------+ | Git code (C) |--- to server requiring ---> | | authentication |.......................| @@ -768,7 +766,7 @@ | v +-----------------------+ | Git credential helper | -+-----------------------+</tt></pre> ++-----------------------+</code></pre> </div></div> <div class="paragraph"><p>The Git code (typically a remote-helper) will call the C API to obtain credential data like a login/password pair (credential_fill). The @@ -793,7 +791,7 @@ <h3 id="_data_structures">Data Structures</h3> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>struct credential</tt> +<code>struct credential</code> </dt> <dd> <p> @@ -804,15 +802,15 @@ their counterparts in the helper protocol; see the section below for a description of each field. </p> -<div class="paragraph"><p>The <tt>helpers</tt> member of the struct is a <tt>string_list</tt> of helpers. Each +<div class="paragraph"><p>The <code>helpers</code> member of the struct is a <code>string_list</code> of helpers. Each string specifies an external helper which will be run, in order, to either acquire or store credentials. See the section on credential helpers below. This list is filled-in by the API functions according to the corresponding configuration variables before consulting helpers, so there usually is no need for a caller to modify the helpers field at all.</p></div> -<div class="paragraph"><p>This struct should always be initialized with <tt>CREDENTIAL_INIT</tt> or -<tt>credential_init</tt>.</p></div> +<div class="paragraph"><p>This struct should always be initialized with <code>CREDENTIAL_INIT</code> or +<code>credential_init</code>.</p></div> </dd> </dl></div> </div> @@ -820,7 +818,7 @@ <h3 id="_functions">Functions</h3> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>credential_init</tt> +<code>credential_init</code> </dt> <dd> <p> @@ -828,7 +826,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>credential_clear</tt> +<code>credential_clear</code> </dt> <dd> <p> @@ -837,7 +835,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>credential_fill</tt> +<code>credential_fill</code> </dt> <dd> <p> @@ -850,7 +848,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>credential_reject</tt> +<code>credential_reject</code> </dt> <dd> <p> @@ -860,12 +858,12 @@ example, to purge the invalid credentials from storage). It will also free() the username and password fields of the credential and set them to NULL (readying the credential for - another call to <tt>credential_fill</tt>). Any errors from helpers are + another call to <code>credential_fill</code>). Any errors from helpers are ignored. </p> </dd> <dt class="hdlist1"> -<tt>credential_approve</tt> +<code>credential_approve</code> </dt> <dd> <p> @@ -877,7 +875,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>credential_from_url</tt> +<code>credential_from_url</code> </dt> <dd> <p> @@ -892,7 +890,7 @@ used to login to a fictitious "foo" service on a remote host:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>int foo_login(struct foo_connection *f) +<pre><code>int foo_login(struct foo_connection *f) { int status; /* @@ -937,7 +935,7 @@ credential_clear(&c); return status; -}</tt></pre> +}</code></pre> </div></div> </div> </div> @@ -950,7 +948,7 @@ longer than a single Git process; e.g., credentials may be stored in-memory for a few minutes, or indefinitely on disk).</p></div> <div class="paragraph"><p>Each helper is specified by a single string in the configuration -variable <tt>credential.helper</tt> (and others, see <a href="../git-config.html">git-config(1)</a>). +variable <code>credential.helper</code> (and others, see <a href="../git-config.html">git-config(1)</a>). The string is transformed by Git into a command to be executed using these rules:</p></div> <div class="olist arabic"><ol class="arabic"> @@ -978,7 +976,7 @@ <div class="paragraph"><p>Here are some example specifications:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt># run "git credential-foo" +<pre><code># run "git credential-foo" foo # same as above, but pass an argument to the helper @@ -992,18 +990,18 @@ /path/to/my/helper --with-arguments # or you can specify your own shell snippet -!f() { echo "password=`cat $HOME/.secret`"; }; f</tt></pre> +!f() { echo "password=`cat $HOME/.secret`"; }; f</code></pre> </div></div> <div class="paragraph"><p>Generally speaking, rule (3) above is the simplest for users to specify. Authors of credential helpers should make an effort to assist their users by naming their program "git-credential-$NAME", and putting it in the $PATH or $GIT_EXEC_PATH during installation, which will allow a user -to enable it with <tt>git config credential.helper $NAME</tt>.</p></div> +to enable it with <code>git config credential.helper $NAME</code>.</p></div> <div class="paragraph"><p>When a helper is executed, it will have one "operation" argument appended to its command line, which is one of:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>get</tt> +<code>get</code> </dt> <dd> <p> @@ -1011,7 +1009,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>store</tt> +<code>store</code> </dt> <dd> <p> @@ -1019,7 +1017,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>erase</tt> +<code>erase</code> </dt> <dd> <p> @@ -1029,13 +1027,13 @@ </dl></div> <div class="paragraph"><p>The details of the credential will be provided on the helper’s stdin stream. The exact format is the same as the input/output format of the -<tt>git credential</tt> plumbing command (see the section <tt>INPUT/OUTPUT -FORMAT</tt> in <a href="../git-credential.html">git-credential(7)</a> for a detailed specification).</p></div> -<div class="paragraph"><p>For a <tt>get</tt> operation, the helper should produce a list of attributes +<code>git credential</code> plumbing command (see the section <code>INPUT/OUTPUT +FORMAT</code> in <a href="../git-credential.html">git-credential(7)</a> for a detailed specification).</p></div> +<div class="paragraph"><p>For a <code>get</code> operation, the helper should produce a list of attributes on stdout in the same format. A helper is free to produce a subset, or even no values at all if it has nothing useful to provide. Any provided attributes will overwrite those already known about by Git.</p></div> -<div class="paragraph"><p>For a <tt>store</tt> or <tt>erase</tt> operation, the helper’s output is ignored. +<div class="paragraph"><p>For a <code>store</code> or <code>erase</code> operation, the helper’s output is ignored. If it fails to perform the requested operation, it may complain to stderr to inform the user. If it does not support the requested operation (e.g., a read-only store), it should silently ignore the @@ -1049,7 +1047,7 @@ <h2 id="_see_also">See also</h2> <div class="sectionbody"> <div class="paragraph"><p><a href="../gitcredentials.html">gitcredentials(7)</a></p></div> -<div class="paragraph"><p><a href="../git-config.html">git-config(5)</a> (See configuration variables <tt>credential.*</tt>)</p></div> +<div class="paragraph"><p><a href="../git-config.html">git-config(5)</a> (See configuration variables <code>credential.*</code>)</p></div> </div> </div> </div>
diff --git a/technical/api-decorate.html b/technical/api-decorate.html index e6b204e..5c9ef2c 100644 --- a/technical/api-decorate.html +++ b/technical/api-decorate.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>decorate API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/technical/api-diff.html b/technical/api-diff.html index 72a9809..2bf3476 100644 --- a/technical/api-diff.html +++ b/technical/api-diff.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>diff API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -749,8 +747,8 @@ <div class="ulist"><ul> <li> <p> -finding total rewrites (<tt>-B</tt>), renames (<tt>-M</tt>) and copies (<tt>-C</tt>), and - changes that touch a string (<tt>-S</tt>), as specified by the caller. +finding total rewrites (<code>-B</code>), renames (<code>-M</code>) and copies (<code>-C</code>), and + changes that touch a string (<code>-S</code>), as specified by the caller. </p> </li> <li> @@ -768,22 +766,22 @@ <div class="ulist"><ul> <li> <p> -Prepare <tt>struct diff_options</tt> to record the set of diff options, and - then call <tt>diff_setup()</tt> to initialize this structure. This sets up +Prepare <code>struct diff_options</code> to record the set of diff options, and + then call <code>diff_setup()</code> to initialize this structure. This sets up the vanilla default. </p> </li> <li> <p> Fill in the options structure to specify desired output format, rename - detection, etc. <tt>diff_opt_parse()</tt> can be used to parse options given + detection, etc. <code>diff_opt_parse()</code> can be used to parse options given from the command line in a way consistent with existing git-diff family of programs. </p> </li> <li> <p> -Call <tt>diff_setup_done()</tt>; this inspects the options set up so far for +Call <code>diff_setup_done()</code>; this inspects the options set up so far for internal consistency and make necessary tweaking to it (e.g. if textual patch output was asked, recursive behaviour is turned on); the callback set_default in diff_options can be used to tweak this more. @@ -791,22 +789,22 @@ </li> <li> <p> -As you find different pairs of files, call <tt>diff_change()</tt> to feed - modified files, <tt>diff_addremove()</tt> to feed created or deleted files, - or <tt>diff_unmerge()</tt> to feed a file whose state is <em>unmerged</em> to the - API. These are thin wrappers to a lower-level <tt>diff_queue()</tt> function +As you find different pairs of files, call <code>diff_change()</code> to feed + modified files, <code>diff_addremove()</code> to feed created or deleted files, + or <code>diff_unmerge()</code> to feed a file whose state is <em>unmerged</em> to the + API. These are thin wrappers to a lower-level <code>diff_queue()</code> function that is flexible enough to record any of these kinds of changes. </p> </li> <li> <p> -Once you finish feeding the pairs of files, call <tt>diffcore_std()</tt>. +Once you finish feeding the pairs of files, call <code>diffcore_std()</code>. This will tell the diffcore library to go ahead and do its work. </p> </li> <li> <p> -Calling <tt>diff_flush()</tt> will produce the output. +Calling <code>diff_flush()</code> will produce the output. </p> </li> </ul></div> @@ -818,68 +816,68 @@ <div class="ulist"><ul> <li> <p> -<tt>struct diff_filespec</tt> +<code>struct diff_filespec</code> </p> </li> </ul></div> <div class="paragraph"><p>This is the internal representation for a single file (blob). It records the blob object name (if known — for a work tree file it typically is a NUL SHA-1), filemode and pathname. This is what the -<tt>diff_addremove()</tt>, <tt>diff_change()</tt> and <tt>diff_unmerge()</tt> synthesize and -feed <tt>diff_queue()</tt> function with.</p></div> +<code>diff_addremove()</code>, <code>diff_change()</code> and <code>diff_unmerge()</code> synthesize and +feed <code>diff_queue()</code> function with.</p></div> <div class="ulist"><ul> <li> <p> -<tt>struct diff_filepair</tt> +<code>struct diff_filepair</code> </p> </li> </ul></div> -<div class="paragraph"><p>This records a pair of <tt>struct diff_filespec</tt>; the filespec for a file -in the "old" set (i.e. preimage) is called <tt>one</tt>, and the filespec for a -file in the "new" set (i.e. postimage) is called <tt>two</tt>. A change that -represents file creation has NULL in <tt>one</tt>, and file deletion has NULL -in <tt>two</tt>.</p></div> -<div class="paragraph"><p>A <tt>filepair</tt> starts pointing at <tt>one</tt> and <tt>two</tt> that are from the same -filename, but <tt>diffcore_std()</tt> can break pairs and match component +<div class="paragraph"><p>This records a pair of <code>struct diff_filespec</code>; the filespec for a file +in the "old" set (i.e. preimage) is called <code>one</code>, and the filespec for a +file in the "new" set (i.e. postimage) is called <code>two</code>. A change that +represents file creation has NULL in <code>one</code>, and file deletion has NULL +in <code>two</code>.</p></div> +<div class="paragraph"><p>A <code>filepair</code> starts pointing at <code>one</code> and <code>two</code> that are from the same +filename, but <code>diffcore_std()</code> can break pairs and match component filespecs with other filespecs from a different filepair to form new filepair. This is called <em>rename detection</em>.</p></div> <div class="ulist"><ul> <li> <p> -<tt>struct diff_queue</tt> +<code>struct diff_queue</code> </p> </li> </ul></div> <div class="paragraph"><p>This is a collection of filepairs. Notable members are:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>queue</tt> +<code>queue</code> </dt> <dd> <p> - An array of pointers to <tt>struct diff_filepair</tt>. This + An array of pointers to <code>struct diff_filepair</code>. This dynamically grows as you add filepairs; </p> </dd> <dt class="hdlist1"> -<tt>alloc</tt> +<code>alloc</code> </dt> <dd> <p> - The allocated size of the <tt>queue</tt> array; + The allocated size of the <code>queue</code> array; </p> </dd> <dt class="hdlist1"> -<tt>nr</tt> +<code>nr</code> </dt> <dd> <p> - The number of elements in the <tt>queue</tt> array. + The number of elements in the <code>queue</code> array. </p> <div class="ulist"><ul> <li> <p> -<tt>struct diff_options</tt> +<code>struct diff_options</code> </p> </li> </ul></div> @@ -890,15 +888,15 @@ <div class="paragraph"><p>Notable members are:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>output_format</tt> +<code>output_format</code> </dt> <dd> <p> - The output format used when <tt>diff_flush()</tt> is run. + The output format used when <code>diff_flush()</code> is run. </p> </dd> <dt class="hdlist1"> -<tt>context</tt> +<code>context</code> </dt> <dd> <p> @@ -906,7 +904,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>break_opt</tt>, <tt>detect_rename</tt>, <tt>rename-score</tt>, <tt>rename_limit</tt> +<code>break_opt</code>, <code>detect_rename</code>, <code>rename-score</code>, <code>rename_limit</code> </dt> <dd> <p> @@ -915,7 +913,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>abbrev</tt> +<code>abbrev</code> </dt> <dd> <p> @@ -923,7 +921,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>pickaxe</tt> +<code>pickaxe</code> </dt> <dd> <p> @@ -934,7 +932,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>flags</tt> +<code>flags</code> </dt> <dd> <p> @@ -944,7 +942,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>touched_flags</tt> +<code>touched_flags</code> </dt> <dd> <p> @@ -953,7 +951,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>set_default</tt> +<code>set_default</code> </dt> <dd> <p> @@ -1034,7 +1032,7 @@ <dd> <p> Tells the library that the calling program is feeding the - filepairs reversed; <tt>one</tt> is two, and <tt>two</tt> is one. + filepairs reversed; <code>one</code> is two, and <code>two</code> is one. </p> </dd> <dt class="hdlist1">
diff --git a/technical/api-directory-listing.html b/technical/api-directory-listing.html index 7800222..0e3434f 100644 --- a/technical/api-directory-listing.html +++ b/technical/api-directory-listing.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>directory listing API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -741,66 +739,66 @@ <div id="preamble"> <div class="sectionbody"> <div class="paragraph"><p>The directory listing API is used to enumerate paths in the work tree, -optionally taking <tt>.git/info/exclude</tt> and <tt>.gitignore</tt> files per +optionally taking <code>.git/info/exclude</code> and <code>.gitignore</code> files per directory into account.</p></div> </div> </div> <div class="sect1"> <h2 id="_data_structure">Data structure</h2> <div class="sectionbody"> -<div class="paragraph"><p><tt>struct dir_struct</tt> structure is used to pass directory traversal +<div class="paragraph"><p><code>struct dir_struct</code> structure is used to pass directory traversal options to the library and to record the paths discovered. A single -<tt>struct dir_struct</tt> is used regardless of whether or not the traversal +<code>struct dir_struct</code> is used regardless of whether or not the traversal recursively descends into subdirectories.</p></div> <div class="paragraph"><p>The notable options are:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>exclude_per_dir</tt> +<code>exclude_per_dir</code> </dt> <dd> <p> The name of the file to be read in each directory for excluded - files (typically <tt>.gitignore</tt>). + files (typically <code>.gitignore</code>). </p> </dd> <dt class="hdlist1"> -<tt>flags</tt> +<code>flags</code> </dt> <dd> <p> - A bit-field of options (the <tt>*IGNORED*</tt> flags are mutually exclusive): + A bit-field of options (the <code>*IGNORED*</code> flags are mutually exclusive): </p> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>DIR_SHOW_IGNORED</tt> +<code>DIR_SHOW_IGNORED</code> </dt> <dd> <p> - Return just ignored files in <tt>entries[]</tt>, not untracked files. + Return just ignored files in <code>entries[]</code>, not untracked files. </p> </dd> <dt class="hdlist1"> -<tt>DIR_SHOW_IGNORED_TOO</tt> +<code>DIR_SHOW_IGNORED_TOO</code> </dt> <dd> <p> - Similar to <tt>DIR_SHOW_IGNORED</tt>, but return ignored files in <tt>ignored[]</tt> - in addition to untracked files in <tt>entries[]</tt>. + Similar to <code>DIR_SHOW_IGNORED</code>, but return ignored files in <code>ignored[]</code> + in addition to untracked files in <code>entries[]</code>. </p> </dd> <dt class="hdlist1"> -<tt>DIR_COLLECT_IGNORED</tt> +<code>DIR_COLLECT_IGNORED</code> </dt> <dd> <p> - Special mode for git-add. Return ignored files in <tt>ignored[]</tt> and - untracked files in <tt>entries[]</tt>. Only returns ignored files that match + Special mode for git-add. Return ignored files in <code>ignored[]</code> and + untracked files in <code>entries[]</code>. Only returns ignored files that match pathspec exactly (no wildcards). Does not recurse into ignored directories. </p> </dd> <dt class="hdlist1"> -<tt>DIR_SHOW_OTHER_DIRECTORIES</tt> +<code>DIR_SHOW_OTHER_DIRECTORIES</code> </dt> <dd> <p> @@ -808,7 +806,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>DIR_HIDE_EMPTY_DIRECTORIES</tt> +<code>DIR_HIDE_EMPTY_DIRECTORIES</code> </dt> <dd> <p> @@ -816,7 +814,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>DIR_NO_GITLINKS</tt> +<code>DIR_NO_GITLINKS</code> </dt> <dd> <p> @@ -830,45 +828,45 @@ <div class="paragraph"><p>The result of the enumeration is left in these fields:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>entries[]</tt> +<code>entries[]</code> </dt> <dd> <p> - An array of <tt>struct dir_entry</tt>, each element of which describes + An array of <code>struct dir_entry</code>, each element of which describes a path. </p> </dd> <dt class="hdlist1"> -<tt>nr</tt> +<code>nr</code> </dt> <dd> <p> - The number of members in <tt>entries[]</tt> array. + The number of members in <code>entries[]</code> array. </p> </dd> <dt class="hdlist1"> -<tt>alloc</tt> +<code>alloc</code> </dt> <dd> <p> - Internal use; keeps track of allocation of <tt>entries[]</tt> array. + Internal use; keeps track of allocation of <code>entries[]</code> array. </p> </dd> <dt class="hdlist1"> -<tt>ignored[]</tt> +<code>ignored[]</code> </dt> <dd> <p> - An array of <tt>struct dir_entry</tt>, used for ignored paths with the - <tt>DIR_SHOW_IGNORED_TOO</tt> and <tt>DIR_COLLECT_IGNORED</tt> flags. + An array of <code>struct dir_entry</code>, used for ignored paths with the + <code>DIR_SHOW_IGNORED_TOO</code> and <code>DIR_COLLECT_IGNORED</code> flags. </p> </dd> <dt class="hdlist1"> -<tt>ignored_nr</tt> +<code>ignored_nr</code> </dt> <dd> <p> - The number of members in <tt>ignored[]</tt> array. + The number of members in <code>ignored[]</code> array. </p> </dd> </dl></div> @@ -882,21 +880,21 @@ <div class="ulist"><ul> <li> <p> -Prepare <tt>struct dir_struct dir</tt> and clear it with <tt>memset(&dir, 0, - sizeof(dir))</tt>. +Prepare <code>struct dir_struct dir</code> and clear it with <code>memset(&dir, 0, + sizeof(dir))</code>. </p> </li> <li> <p> -To add single exclude pattern, call <tt>add_exclude_list()</tt> and then - <tt>add_exclude()</tt>. +To add single exclude pattern, call <code>add_exclude_list()</code> and then + <code>add_exclude()</code>. </p> </li> <li> <p> -To add patterns from a file (e.g. <tt>.git/info/exclude</tt>), call - <tt>add_excludes_from_file()</tt> , and/or set <tt>dir.exclude_per_dir</tt>. A - short-hand function <tt>setup_standard_excludes()</tt> can be used to set +To add patterns from a file (e.g. <code>.git/info/exclude</code>), call + <code>add_excludes_from_file()</code> , and/or set <code>dir.exclude_per_dir</code>. A + short-hand function <code>setup_standard_excludes()</code> can be used to set up the standard set of exclude settings. </p> </li> @@ -907,17 +905,17 @@ </li> <li> <p> -Call <tt>read_directory()</tt>. +Call <code>read_directory()</code>. </p> </li> <li> <p> -Use <tt>dir.entries[]</tt>. +Use <code>dir.entries[]</code>. </p> </li> <li> <p> -Call <tt>clear_directory()</tt> when none of the contained elements are no longer in use. +Call <code>clear_directory()</code> when none of the contained elements are no longer in use. </p> </li> </ul></div>
diff --git a/technical/api-gitattributes.html b/technical/api-gitattributes.html index 33e592f..bb37360 100644 --- a/technical/api-gitattributes.html +++ b/technical/api-gitattributes.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>gitattributes API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -749,24 +747,24 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>struct git_attr</tt> +<code>struct git_attr</code> </dt> <dd> <p> An attribute is an opaque object that is identified by its name. - Pass the name to <tt>git_attr()</tt> function to obtain the object of + Pass the name to <code>git_attr()</code> function to obtain the object of this type. The internal representation of this structure is of no interest to the calling programs. The name of the - attribute can be retrieved by calling <tt>git_attr_name()</tt>. + attribute can be retrieved by calling <code>git_attr_name()</code>. </p> </dd> <dt class="hdlist1"> -<tt>struct git_attr_check</tt> +<code>struct git_attr_check</code> </dt> <dd> <p> This structure represents a set of attributes to check in a call - to <tt>git_check_attr()</tt> function, and receives the results. + to <code>git_check_attr()</code> function, and receives the results. </p> </dd> </dl></div> @@ -776,11 +774,11 @@ <h2 id="_attribute_values">Attribute Values</h2> <div class="sectionbody"> <div class="paragraph"><p>An attribute for a path can be in one of four states: Set, Unset, -Unspecified or set to a string, and <tt>.value</tt> member of <tt>struct -git_attr_check</tt> records it. There are three macros to check these:</p></div> +Unspecified or set to a string, and <code>.value</code> member of <code>struct +git_attr_check</code> records it. There are three macros to check these:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>ATTR_TRUE()</tt> +<code>ATTR_TRUE()</code> </dt> <dd> <p> @@ -788,7 +786,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>ATTR_FALSE()</tt> +<code>ATTR_FALSE()</code> </dt> <dd> <p> @@ -796,7 +794,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>ATTR_UNSET()</tt> +<code>ATTR_UNSET()</code> </dt> <dd> <p> @@ -804,7 +802,7 @@ </p> </dd> </dl></div> -<div class="paragraph"><p>If none of the above returns true, <tt>.value</tt> member points at a string +<div class="paragraph"><p>If none of the above returns true, <code>.value</code> member points at a string value of the attribute for the path.</p></div> </div> </div> @@ -814,19 +812,19 @@ <div class="ulist"><ul> <li> <p> -Prepare an array of <tt>struct git_attr_check</tt> to define the list of +Prepare an array of <code>struct git_attr_check</code> to define the list of attributes you would want to check. To populate this array, you would - need to define necessary attributes by calling <tt>git_attr()</tt> function. + need to define necessary attributes by calling <code>git_attr()</code> function. </p> </li> <li> <p> -Call <tt>git_check_attr()</tt> to check the attributes for the path. +Call <code>git_check_attr()</code> to check the attributes for the path. </p> </li> <li> <p> -Inspect <tt>git_attr_check</tt> structure to see how each of the attribute in +Inspect <code>git_attr_check</code> structure to see how each of the attribute in the array is defined for the path. </p> </li> @@ -840,47 +838,47 @@ <div class="olist arabic"><ol class="arabic"> <li> <p> -Prepare an array of <tt>struct git_attr_check</tt> with two elements (because - we are checking two attributes). Initialize their <tt>attr</tt> member with - pointers to <tt>struct git_attr</tt> obtained by calling <tt>git_attr()</tt>: +Prepare an array of <code>struct git_attr_check</code> with two elements (because + we are checking two attributes). Initialize their <code>attr</code> member with + pointers to <code>struct git_attr</code> obtained by calling <code>git_attr()</code>: </p> </li> </ol></div> <div class="listingblock"> <div class="content"> -<pre><tt>static struct git_attr_check check[2]; +<pre><code>static struct git_attr_check check[2]; static void setup_check(void) { if (check[0].attr) return; /* already done */ check[0].attr = git_attr("crlf"); check[1].attr = git_attr("ident"); -}</tt></pre> +}</code></pre> </div></div> <div class="olist arabic"><ol class="arabic"> <li> <p> -Call <tt>git_check_attr()</tt> with the prepared array of <tt>struct git_attr_check</tt>: +Call <code>git_check_attr()</code> with the prepared array of <code>struct git_attr_check</code>: </p> </li> </ol></div> <div class="listingblock"> <div class="content"> -<pre><tt> const char *path; +<pre><code> const char *path; setup_check(); - git_check_attr(path, ARRAY_SIZE(check), check);</tt></pre> + git_check_attr(path, ARRAY_SIZE(check), check);</code></pre> </div></div> <div class="olist arabic"><ol class="arabic"> <li> <p> -Act on <tt>.value</tt> member of the result, left in <tt>check[]</tt>: +Act on <code>.value</code> member of the result, left in <code>check[]</code>: </p> </li> </ol></div> <div class="listingblock"> <div class="content"> -<pre><tt> const char *value = check[0].value; +<pre><code> const char *value = check[0].value; if (ATTR_TRUE(value)) { The attribute is Set, by listing only the name of the @@ -896,7 +894,7 @@ file for the path by saying "attr=value". } else if (... other check using value as string ...) { ... - }</tt></pre> + }</code></pre> </div></div> </div> </div> @@ -907,23 +905,23 @@ <div class="ulist"><ul> <li> <p> -Call <tt>git_all_attrs()</tt>, which returns an array of <tt>git_attr_check</tt> +Call <code>git_all_attrs()</code>, which returns an array of <code>git_attr_check</code> structures. </p> </li> <li> <p> -Iterate over the <tt>git_attr_check</tt> array to examine the attribute +Iterate over the <code>git_attr_check</code> array to examine the attribute names and values. The name of the attribute described by a - <tt>git_attr_check</tt> object can be retrieved via - <tt>git_attr_name(check[i].attr)</tt>. (Please note that no items will be - returned for unset attributes, so <tt>ATTR_UNSET()</tt> will return false - for all returned <tt>git_array_check</tt> objects.) + <code>git_attr_check</code> object can be retrieved via + <code>git_attr_name(check[i].attr)</code>. (Please note that no items will be + returned for unset attributes, so <code>ATTR_UNSET()</code> will return false + for all returned <code>git_array_check</code> objects.) </p> </li> <li> <p> -Free the <tt>git_array_check</tt> array. +Free the <code>git_array_check</code> array. </p> </li> </ul></div>
diff --git a/technical/api-grep.html b/technical/api-grep.html index 3a3589d..d75039c 100644 --- a/technical/api-grep.html +++ b/technical/api-grep.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>grep API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/technical/api-hashmap.html b/technical/api-hashmap.html index 561fea0..eb80c77 100644 --- a/technical/api-hashmap.html +++ b/technical/api-hashmap.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>hashmap API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -748,24 +746,24 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>struct hashmap</tt> +<code>struct hashmap</code> </dt> <dd> <p> The hash table structure. Members can be used as follows, but should not be modified directly: </p> -<div class="paragraph"><p>The <tt>size</tt> member keeps track of the total number of entries (0 means the +<div class="paragraph"><p>The <code>size</code> member keeps track of the total number of entries (0 means the hashmap is empty).</p></div> -<div class="paragraph"><p><tt>tablesize</tt> is the allocated size of the hash table. A non-0 value indicates +<div class="paragraph"><p><code>tablesize</code> is the allocated size of the hash table. A non-0 value indicates that the hashmap is initialized. It may also be useful for statistical purposes -(i.e. <tt>size / tablesize</tt> is the current load factor).</p></div> -<div class="paragraph"><p><tt>cmpfn</tt> stores the comparison function specified in <tt>hashmap_init()</tt>. In +(i.e. <code>size / tablesize</code> is the current load factor).</p></div> +<div class="paragraph"><p><code>cmpfn</code> stores the comparison function specified in <code>hashmap_init()</code>. In advanced scenarios, it may be useful to change this, e.g. to switch between case-sensitive and case-insensitive lookup.</p></div> </dd> <dt class="hdlist1"> -<tt>struct hashmap_entry</tt> +<code>struct hashmap_entry</code> </dt> <dd> <p> @@ -774,12 +772,12 @@ followed by an int-sized member to prevent unused memory on 64-bit systems due to alignment. </p> -<div class="paragraph"><p>The <tt>hash</tt> member is the entry’s hash code and the <tt>next</tt> member points to the +<div class="paragraph"><p>The <code>hash</code> member is the entry’s hash code and the <code>next</code> member points to the next entry in case of collisions (i.e. if multiple entries map to the same bucket).</p></div> </dd> <dt class="hdlist1"> -<tt>struct hashmap_iter</tt> +<code>struct hashmap_iter</code> </dt> <dd> <p> @@ -794,17 +792,17 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>int (*hashmap_cmp_fn)(const void *entry, const void *entry_or_key, const void *keydata)</tt> +<code>int (*hashmap_cmp_fn)(const void *entry, const void *entry_or_key, const void *keydata)</code> </dt> <dd> <p> User-supplied function to test two hashmap entries for equality. Shall return 0 if the entries are equal. </p> -<div class="paragraph"><p>This function is always called with non-NULL <tt>entry</tt> / <tt>entry_or_key</tt> -parameters that have the same hash code. When looking up an entry, the <tt>key</tt> -and <tt>keydata</tt> parameters to hashmap_get and hashmap_remove are always passed -as second and third argument, respectively. Otherwise, <tt>keydata</tt> is NULL.</p></div> +<div class="paragraph"><p>This function is always called with non-NULL <code>entry</code> / <code>entry_or_key</code> +parameters that have the same hash code. When looking up an entry, the <code>key</code> +and <code>keydata</code> parameters to hashmap_get and hashmap_remove are always passed +as second and third argument, respectively. Otherwise, <code>keydata</code> is NULL.</p></div> </dd> </dl></div> </div> @@ -814,140 +812,140 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>unsigned int strhash(const char *buf)</tt> +<code>unsigned int strhash(const char *buf)</code> </dt> <dt class="hdlist1"> -<tt>unsigned int strihash(const char *buf)</tt> +<code>unsigned int strihash(const char *buf)</code> </dt> <dt class="hdlist1"> -<tt>unsigned int memhash(const void *buf, size_t len)</tt> +<code>unsigned int memhash(const void *buf, size_t len)</code> </dt> <dt class="hdlist1"> -<tt>unsigned int memihash(const void *buf, size_t len)</tt> +<code>unsigned int memihash(const void *buf, size_t len)</code> </dt> <dd> <p> Ready-to-use hash functions for strings, using the FNV-1 algorithm (see <a href="http://www.isthe.com/chongo/tech/comp/fnv">http://www.isthe.com/chongo/tech/comp/fnv</a>). </p> -<div class="paragraph"><p><tt>strhash</tt> and <tt>strihash</tt> take 0-terminated strings, while <tt>memhash</tt> and -<tt>memihash</tt> operate on arbitrary-length memory.</p></div> -<div class="paragraph"><p><tt>strihash</tt> and <tt>memihash</tt> are case insensitive versions.</p></div> +<div class="paragraph"><p><code>strhash</code> and <code>strihash</code> take 0-terminated strings, while <code>memhash</code> and +<code>memihash</code> operate on arbitrary-length memory.</p></div> +<div class="paragraph"><p><code>strihash</code> and <code>memihash</code> are case insensitive versions.</p></div> </dd> <dt class="hdlist1"> -<tt>unsigned int sha1hash(const unsigned char *sha1)</tt> +<code>unsigned int sha1hash(const unsigned char *sha1)</code> </dt> <dd> <p> Converts a cryptographic hash (e.g. SHA-1) into an int-sized hash code for use in hash tables. Cryptographic hashes are supposed to have - uniform distribution, so in contrast to <tt>memhash()</tt>, this just copies - the first <tt>sizeof(int)</tt> bytes without shuffling any bits. Note that + uniform distribution, so in contrast to <code>memhash()</code>, this just copies + the first <code>sizeof(int)</code> bytes without shuffling any bits. Note that the results will be different on big-endian and little-endian platforms, so they should not be stored or transferred over the net. </p> </dd> <dt class="hdlist1"> -<tt>void hashmap_init(struct hashmap *map, hashmap_cmp_fn equals_function, size_t initial_size)</tt> +<code>void hashmap_init(struct hashmap *map, hashmap_cmp_fn equals_function, size_t initial_size)</code> </dt> <dd> <p> Initializes a hashmap structure. </p> -<div class="paragraph"><p><tt>map</tt> is the hashmap to initialize.</p></div> -<div class="paragraph"><p>The <tt>equals_function</tt> can be specified to compare two entries for equality. +<div class="paragraph"><p><code>map</code> is the hashmap to initialize.</p></div> +<div class="paragraph"><p>The <code>equals_function</code> can be specified to compare two entries for equality. If NULL, entries are considered equal if their hash codes are equal.</p></div> -<div class="paragraph"><p>If the total number of entries is known in advance, the <tt>initial_size</tt> +<div class="paragraph"><p>If the total number of entries is known in advance, the <code>initial_size</code> parameter may be used to preallocate a sufficiently large table and thus prevent expensive resizing. If 0, the table is dynamically resized.</p></div> </dd> <dt class="hdlist1"> -<tt>void hashmap_free(struct hashmap *map, int free_entries)</tt> +<code>void hashmap_free(struct hashmap *map, int free_entries)</code> </dt> <dd> <p> Frees a hashmap structure and allocated memory. </p> -<div class="paragraph"><p><tt>map</tt> is the hashmap to free.</p></div> -<div class="paragraph"><p>If <tt>free_entries</tt> is true, each hashmap_entry in the map is freed as well +<div class="paragraph"><p><code>map</code> is the hashmap to free.</p></div> +<div class="paragraph"><p>If <code>free_entries</code> is true, each hashmap_entry in the map is freed as well (using stdlib’s free()).</p></div> </dd> <dt class="hdlist1"> -<tt>void hashmap_entry_init(void *entry, unsigned int hash)</tt> +<code>void hashmap_entry_init(void *entry, unsigned int hash)</code> </dt> <dd> <p> Initializes a hashmap_entry structure. </p> -<div class="paragraph"><p><tt>entry</tt> points to the entry to initialize.</p></div> -<div class="paragraph"><p><tt>hash</tt> is the hash code of the entry.</p></div> +<div class="paragraph"><p><code>entry</code> points to the entry to initialize.</p></div> +<div class="paragraph"><p><code>hash</code> is the hash code of the entry.</p></div> </dd> <dt class="hdlist1"> -<tt>void *hashmap_get(const struct hashmap *map, const void *key, const void *keydata)</tt> +<code>void *hashmap_get(const struct hashmap *map, const void *key, const void *keydata)</code> </dt> <dd> <p> Returns the hashmap entry for the specified key, or NULL if not found. </p> -<div class="paragraph"><p><tt>map</tt> is the hashmap structure.</p></div> -<div class="paragraph"><p><tt>key</tt> is a hashmap_entry structure (or user data structure that starts with +<div class="paragraph"><p><code>map</code> is the hashmap structure.</p></div> +<div class="paragraph"><p><code>key</code> is a hashmap_entry structure (or user data structure that starts with hashmap_entry) that has at least been initialized with the proper hash code -(via <tt>hashmap_entry_init</tt>).</p></div> -<div class="paragraph"><p>If an entry with matching hash code is found, <tt>key</tt> and <tt>keydata</tt> are passed -to <tt>hashmap_cmp_fn</tt> to decide whether the entry matches the key.</p></div> +(via <code>hashmap_entry_init</code>).</p></div> +<div class="paragraph"><p>If an entry with matching hash code is found, <code>key</code> and <code>keydata</code> are passed +to <code>hashmap_cmp_fn</code> to decide whether the entry matches the key.</p></div> </dd> <dt class="hdlist1"> -<tt>void *hashmap_get_from_hash(const struct hashmap *map, unsigned int hash, const void *keydata)</tt> +<code>void *hashmap_get_from_hash(const struct hashmap *map, unsigned int hash, const void *keydata)</code> </dt> <dd> <p> Returns the hashmap entry for the specified hash code and key data, or NULL if not found. </p> -<div class="paragraph"><p><tt>map</tt> is the hashmap structure.</p></div> -<div class="paragraph"><p><tt>hash</tt> is the hash code of the entry to look up.</p></div> -<div class="paragraph"><p>If an entry with matching hash code is found, <tt>keydata</tt> is passed to -<tt>hashmap_cmp_fn</tt> to decide whether the entry matches the key. The -<tt>entry_or_key</tt> parameter points to a bogus hashmap_entry structure that +<div class="paragraph"><p><code>map</code> is the hashmap structure.</p></div> +<div class="paragraph"><p><code>hash</code> is the hash code of the entry to look up.</p></div> +<div class="paragraph"><p>If an entry with matching hash code is found, <code>keydata</code> is passed to +<code>hashmap_cmp_fn</code> to decide whether the entry matches the key. The +<code>entry_or_key</code> parameter points to a bogus hashmap_entry structure that should not be used in the comparison.</p></div> </dd> <dt class="hdlist1"> -<tt>void *hashmap_get_next(const struct hashmap *map, const void *entry)</tt> +<code>void *hashmap_get_next(const struct hashmap *map, const void *entry)</code> </dt> <dd> <p> Returns the next equal hashmap entry, or NULL if not found. This can be - used to iterate over duplicate entries (see <tt>hashmap_add</tt>). + used to iterate over duplicate entries (see <code>hashmap_add</code>). </p> -<div class="paragraph"><p><tt>map</tt> is the hashmap structure.</p></div> -<div class="paragraph"><p><tt>entry</tt> is the hashmap_entry to start the search from, obtained via a previous -call to <tt>hashmap_get</tt> or <tt>hashmap_get_next</tt>.</p></div> +<div class="paragraph"><p><code>map</code> is the hashmap structure.</p></div> +<div class="paragraph"><p><code>entry</code> is the hashmap_entry to start the search from, obtained via a previous +call to <code>hashmap_get</code> or <code>hashmap_get_next</code>.</p></div> </dd> <dt class="hdlist1"> -<tt>void hashmap_add(struct hashmap *map, void *entry)</tt> +<code>void hashmap_add(struct hashmap *map, void *entry)</code> </dt> <dd> <p> Adds a hashmap entry. This allows to add duplicate entries (i.e. separate values with the same key according to hashmap_cmp_fn). </p> -<div class="paragraph"><p><tt>map</tt> is the hashmap structure.</p></div> -<div class="paragraph"><p><tt>entry</tt> is the entry to add.</p></div> +<div class="paragraph"><p><code>map</code> is the hashmap structure.</p></div> +<div class="paragraph"><p><code>entry</code> is the entry to add.</p></div> </dd> <dt class="hdlist1"> -<tt>void *hashmap_put(struct hashmap *map, void *entry)</tt> +<code>void *hashmap_put(struct hashmap *map, void *entry)</code> </dt> <dd> <p> Adds or replaces a hashmap entry. If the hashmap contains duplicate entries equal to the specified entry, only one of them will be replaced. </p> -<div class="paragraph"><p><tt>map</tt> is the hashmap structure.</p></div> -<div class="paragraph"><p><tt>entry</tt> is the entry to add or replace.</p></div> +<div class="paragraph"><p><code>map</code> is the hashmap structure.</p></div> +<div class="paragraph"><p><code>entry</code> is the entry to add or replace.</p></div> <div class="paragraph"><p>Returns the replaced entry, or NULL if not found (i.e. the entry was added).</p></div> </dd> <dt class="hdlist1"> -<tt>void *hashmap_remove(struct hashmap *map, const void *key, const void *keydata)</tt> +<code>void *hashmap_remove(struct hashmap *map, const void *key, const void *keydata)</code> </dt> <dd> <p> @@ -955,46 +953,46 @@ contains duplicate entries equal to the specified key, only one of them will be removed. </p> -<div class="paragraph"><p><tt>map</tt> is the hashmap structure.</p></div> -<div class="paragraph"><p><tt>key</tt> is a hashmap_entry structure (or user data structure that starts with +<div class="paragraph"><p><code>map</code> is the hashmap structure.</p></div> +<div class="paragraph"><p><code>key</code> is a hashmap_entry structure (or user data structure that starts with hashmap_entry) that has at least been initialized with the proper hash code -(via <tt>hashmap_entry_init</tt>).</p></div> -<div class="paragraph"><p>If an entry with matching hash code is found, <tt>key</tt> and <tt>keydata</tt> are -passed to <tt>hashmap_cmp_fn</tt> to decide whether the entry matches the key.</p></div> +(via <code>hashmap_entry_init</code>).</p></div> +<div class="paragraph"><p>If an entry with matching hash code is found, <code>key</code> and <code>keydata</code> are +passed to <code>hashmap_cmp_fn</code> to decide whether the entry matches the key.</p></div> <div class="paragraph"><p>Returns the removed entry, or NULL if not found.</p></div> </dd> <dt class="hdlist1"> -<tt>void hashmap_iter_init(struct hashmap *map, struct hashmap_iter *iter)</tt> +<code>void hashmap_iter_init(struct hashmap *map, struct hashmap_iter *iter)</code> </dt> <dt class="hdlist1"> -<tt>void *hashmap_iter_next(struct hashmap_iter *iter)</tt> +<code>void *hashmap_iter_next(struct hashmap_iter *iter)</code> </dt> <dt class="hdlist1"> -<tt>void *hashmap_iter_first(struct hashmap *map, struct hashmap_iter *iter)</tt> +<code>void *hashmap_iter_first(struct hashmap *map, struct hashmap_iter *iter)</code> </dt> <dd> <p> Used to iterate over all entries of a hashmap. </p> -<div class="paragraph"><p><tt>hashmap_iter_init</tt> initializes a <tt>hashmap_iter</tt> structure.</p></div> -<div class="paragraph"><p><tt>hashmap_iter_next</tt> returns the next hashmap_entry, or NULL if there are no +<div class="paragraph"><p><code>hashmap_iter_init</code> initializes a <code>hashmap_iter</code> structure.</p></div> +<div class="paragraph"><p><code>hashmap_iter_next</code> returns the next hashmap_entry, or NULL if there are no more entries.</p></div> -<div class="paragraph"><p><tt>hashmap_iter_first</tt> is a combination of both (i.e. initializes the iterator +<div class="paragraph"><p><code>hashmap_iter_first</code> is a combination of both (i.e. initializes the iterator and returns the first entry, if any).</p></div> </dd> <dt class="hdlist1"> -<tt>const char *strintern(const char *string)</tt> +<code>const char *strintern(const char *string)</code> </dt> <dt class="hdlist1"> -<tt>const void *memintern(const void *data, size_t len)</tt> +<code>const void *memintern(const void *data, size_t len)</code> </dt> <dd> <p> Returns the unique, interned version of the specified string or data, - similar to the <tt>String.intern</tt> API in Java and .NET, respectively. + similar to the <code>String.intern</code> API in Java and .NET, respectively. Interned strings remain valid for the entire lifetime of the process. </p> -<div class="paragraph"><p>Can be used as <tt>[x]strdup()</tt> or <tt>xmemdupz</tt> replacement, except that interned +<div class="paragraph"><p>Can be used as <code>[x]strdup()</code> or <code>xmemdupz</code> replacement, except that interned strings / data must not be modified or freed.</p></div> <div class="paragraph"><p>Interned strings are best used for short strings with high probability of duplicates.</p></div> @@ -1009,7 +1007,7 @@ <div class="paragraph"><p>Here’s a simple usage example that maps long keys to double values.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>struct hashmap map; +<pre><code>struct hashmap map; struct long2double { struct hashmap_entry ent; /* must be the first member! */ @@ -1056,20 +1054,20 @@ hashmap_add(&map, e); } e->value = value; -}</tt></pre> +}</code></pre> </div></div> </div> </div> <div class="sect1"> <h2 id="_using_variable_sized_keys">Using variable-sized keys</h2> <div class="sectionbody"> -<div class="paragraph"><p>The <tt>hashmap_entry_get</tt> and <tt>hashmap_entry_remove</tt> functions expect an ordinary -<tt>hashmap_entry</tt> structure as key to find the correct entry. If the key data is +<div class="paragraph"><p>The <code>hashmap_entry_get</code> and <code>hashmap_entry_remove</code> functions expect an ordinary +<code>hashmap_entry</code> structure as key to find the correct entry. If the key data is variable-sized (e.g. a FLEX_ARRAY string) or quite large, it is undesirable to create a full-fledged entry structure on the heap and copy all the key data into the structure.</p></div> -<div class="paragraph"><p>In this case, the <tt>keydata</tt> parameter can be used to pass -variable-sized key data directly to the comparison function, and the <tt>key</tt> +<div class="paragraph"><p>In this case, the <code>keydata</code> parameter can be used to pass +variable-sized key data directly to the comparison function, and the <code>key</code> parameter can be a stripped-down, fixed size entry structure allocated on the stack.</p></div> <div class="paragraph"><p>See test-hashmap.c for an example using arbitrary-length strings as keys.</p></div>
diff --git a/technical/api-history-graph.html b/technical/api-history-graph.html index 710ac1d..3b76562 100644 --- a/technical/api-history-graph.html +++ b/technical/api-history-graph.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>history graph API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -751,48 +749,48 @@ <div class="ulist"><ul> <li> <p> -<tt>graph_init()</tt> creates a new <tt>struct git_graph</tt> +<code>graph_init()</code> creates a new <code>struct git_graph</code> </p> </li> <li> <p> -<tt>graph_update()</tt> moves the graph to a new commit. +<code>graph_update()</code> moves the graph to a new commit. </p> </li> <li> <p> -<tt>graph_next_line()</tt> outputs the next line of the graph into a strbuf. It +<code>graph_next_line()</code> outputs the next line of the graph into a strbuf. It does not add a terminating newline. </p> </li> <li> <p> -<tt>graph_padding_line()</tt> outputs a line of vertical padding in the graph. It - is similar to <tt>graph_next_line()</tt>, but is guaranteed to never print the line - containing the current commit. Where <tt>graph_next_line()</tt> would print the - commit line next, <tt>graph_padding_line()</tt> prints a line that simply extends +<code>graph_padding_line()</code> outputs a line of vertical padding in the graph. It + is similar to <code>graph_next_line()</code>, but is guaranteed to never print the line + containing the current commit. Where <code>graph_next_line()</code> would print the + commit line next, <code>graph_padding_line()</code> prints a line that simply extends all branch lines downwards one row, leaving their positions unchanged. </p> </li> <li> <p> -<tt>graph_is_commit_finished()</tt> determines if the graph has output all lines - necessary for the current commit. If <tt>graph_update()</tt> is called before all +<code>graph_is_commit_finished()</code> determines if the graph has output all lines + necessary for the current commit. If <code>graph_update()</code> is called before all lines for the current commit have been printed, the next call to - <tt>graph_next_line()</tt> will output an ellipsis, to indicate that a portion of + <code>graph_next_line()</code> will output an ellipsis, to indicate that a portion of the graph was omitted. </p> </li> </ul></div> -<div class="paragraph"><p>The following utility functions are wrappers around <tt>graph_next_line()</tt> and -<tt>graph_is_commit_finished()</tt>. They always print the output to stdout. +<div class="paragraph"><p>The following utility functions are wrappers around <code>graph_next_line()</code> and +<code>graph_is_commit_finished()</code>. They always print the output to stdout. They can all be called with a NULL graph argument, in which case no graph output will be printed.</p></div> <div class="ulist"><ul> <li> <p> -<tt>graph_show_commit()</tt> calls <tt>graph_next_line()</tt> and - <tt>graph_is_commit_finished()</tt> until one of them return non-zero. This prints +<code>graph_show_commit()</code> calls <code>graph_next_line()</code> and + <code>graph_is_commit_finished()</code> until one of them return non-zero. This prints all graph lines up to, and including, the line containing this commit. Output is printed to stdout. The last line printed does not contain a terminating newline. @@ -800,40 +798,40 @@ </li> <li> <p> -<tt>graph_show_oneline()</tt> calls <tt>graph_next_line()</tt> and prints the result to +<code>graph_show_oneline()</code> calls <code>graph_next_line()</code> and prints the result to stdout. The line printed does not contain a terminating newline. </p> </li> <li> <p> -<tt>graph_show_padding()</tt> calls <tt>graph_padding_line()</tt> and prints the result to +<code>graph_show_padding()</code> calls <code>graph_padding_line()</code> and prints the result to stdout. The line printed does not contain a terminating newline. </p> </li> <li> <p> -<tt>graph_show_remainder()</tt> calls <tt>graph_next_line()</tt> until - <tt>graph_is_commit_finished()</tt> returns non-zero. Output is printed to stdout. +<code>graph_show_remainder()</code> calls <code>graph_next_line()</code> until + <code>graph_is_commit_finished()</code> returns non-zero. Output is printed to stdout. The last line printed does not contain a terminating newline. Returns 1 if output was printed, and 0 if no output was necessary. </p> </li> <li> <p> -<tt>graph_show_strbuf()</tt> prints the specified strbuf to stdout, prefixing all +<code>graph_show_strbuf()</code> prints the specified strbuf to stdout, prefixing all lines but the first with a graph line. The caller is responsible for ensuring graph output for the first line has already been printed to stdout. - (This can be done with <tt>graph_show_commit()</tt> or <tt>graph_show_oneline()</tt>.) If + (This can be done with <code>graph_show_commit()</code> or <code>graph_show_oneline()</code>.) If a NULL graph is supplied, the strbuf is printed as-is. </p> </li> <li> <p> -<tt>graph_show_commit_msg()</tt> is similar to <tt>graph_show_strbuf()</tt>, but it also +<code>graph_show_commit_msg()</code> is similar to <code>graph_show_strbuf()</code>, but it also prints the remainder of the graph, if more lines are needed after the strbuf - ends. It is better than directly calling <tt>graph_show_strbuf()</tt> followed by - <tt>graph_show_remainder()</tt> since it properly handles buffers that do not end in - a terminating newline. The output printed by <tt>graph_show_commit_msg()</tt> will + ends. It is better than directly calling <code>graph_show_strbuf()</code> followed by + <code>graph_show_remainder()</code> since it properly handles buffers that do not end in + a terminating newline. The output printed by <code>graph_show_commit_msg()</code> will end in a newline if and only if the strbuf ends in a newline. </p> </li> @@ -843,7 +841,7 @@ <div class="sect1"> <h2 id="_data_structure">Data structure</h2> <div class="sectionbody"> -<div class="paragraph"><p><tt>struct git_graph</tt> is an opaque data type used to store the current graph +<div class="paragraph"><p><code>struct git_graph</code> is an opaque data type used to store the current graph state.</p></div> </div> </div> @@ -853,24 +851,24 @@ <div class="ulist"><ul> <li> <p> -Create a <tt>struct git_graph</tt> by calling <tt>graph_init()</tt>. When using the - revision walking API, this is done automatically by <tt>setup_revisions()</tt> if +Create a <code>struct git_graph</code> by calling <code>graph_init()</code>. When using the + revision walking API, this is done automatically by <code>setup_revisions()</code> if the <em>--graph</em> option is supplied. </p> </li> <li> <p> Use the revision walking API to walk through a group of contiguous commits. - The <tt>get_revision()</tt> function automatically calls <tt>graph_update()</tt> each time + The <code>get_revision()</code> function automatically calls <code>graph_update()</code> each time it is invoked. </p> </li> <li> <p> -For each commit, call <tt>graph_next_line()</tt> repeatedly, until - <tt>graph_is_commit_finished()</tt> returns non-zero. Each call go - <tt>graph_next_line()</tt> will output a single line of the graph. The resulting - lines will not contain any newlines. <tt>graph_next_line()</tt> returns 1 if the +For each commit, call <code>graph_next_line()</code> repeatedly, until + <code>graph_is_commit_finished()</code> returns non-zero. Each call go + <code>graph_next_line()</code> will output a single line of the graph. The resulting + lines will not contain any newlines. <code>graph_next_line()</code> returns 1 if the resulting line contains the current commit, or 0 if this is merely a line needed to adjust the graph before or after the current commit. This return value can be used to determine where to print the commit summary information @@ -886,19 +884,19 @@ <div class="ulist"><ul> <li> <p> -<tt>graph_update()</tt> must be called with commits in topological order. It should +<code>graph_update()</code> must be called with commits in topological order. It should not be called on a commit if it has already been invoked with an ancestor of that commit, or the graph output will be incorrect. </p> </li> <li> <p> -<tt>graph_update()</tt> must be called on a contiguous group of commits. If - <tt>graph_update()</tt> is called on a particular commit, it should later be called +<code>graph_update()</code> must be called on a contiguous group of commits. If + <code>graph_update()</code> is called on a particular commit, it should later be called on all parents of that commit. Parents must not be skipped, or the graph output will appear incorrect. </p> -<div class="paragraph"><p><tt>graph_update()</tt> may be used on a pruned set of commits only if the parent list +<div class="paragraph"><p><code>graph_update()</code> may be used on a pruned set of commits only if the parent list has been rewritten so as to include only ancestors from the pruned set.</p></div> </li> <li> @@ -916,7 +914,7 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt>struct commit *commit; +<pre><code>struct commit *commit; struct git_graph *graph = graph_init(opts); while ((commit = get_revision(opts)) != NULL) { @@ -935,7 +933,7 @@ else putchar(opts->diffopt.line_termination); } -}</tt></pre> +}</code></pre> </div></div> </div> </div> @@ -947,7 +945,7 @@ outputting that information, if desired.</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>* +<pre><code>* * * |\ @@ -976,7 +974,7 @@ * | | | | | | | | | | * | | | | |/ -| | | | *</tt></pre> +| | | | *</code></pre> </div></div> </div> </div>
diff --git a/technical/api-in-core-index.html b/technical/api-in-core-index.html index 3562285..d595c1e 100644 --- a/technical/api-in-core-index.html +++ b/technical/api-in-core-index.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>in-core index API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/technical/api-index.html b/technical/api-index.html index 9fb2756..118aa0a 100644 --- a/technical/api-index.html +++ b/technical/api-index.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Git API Documents</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -900,7 +898,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-08-17 11:15:11 PDT +Last updated 2014-10-31 13:22:57 PDT </div> </div> </body>
diff --git a/technical/api-merge.html b/technical/api-merge.html index 331e4e0..b94f507 100644 --- a/technical/api-merge.html +++ b/technical/api-merge.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>merge API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -761,7 +759,7 @@ <li> <p> performing a three-way merge of corresponding files, taking - path-specific merge drivers (specified in <tt>.gitattributes</tt>) + path-specific merge drivers (specified in <code>.gitattributes</code>) into account. </p> </li> @@ -774,17 +772,17 @@ <div class="ulist"><ul> <li> <p> -<tt>mmbuffer_t</tt>, <tt>mmfile_t</tt> +<code>mmbuffer_t</code>, <code>mmfile_t</code> </p> </li> </ul></div> <div class="paragraph"><p>These store data usable for use by the xdiff backend, for writing and -for reading, respectively. See <tt>xdiff/xdiff.h</tt> for the definitions -and <tt>diff.c</tt> for examples.</p></div> +for reading, respectively. See <code>xdiff/xdiff.h</code> for the definitions +and <code>diff.c</code> for examples.</p></div> <div class="ulist"><ul> <li> <p> -<tt>struct ll_merge_options</tt> +<code>struct ll_merge_options</code> </p> </li> </ul></div> @@ -792,31 +790,31 @@ the operation of a low-level (single file) merge. Some options:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>virtual_ancestor</tt> +<code>virtual_ancestor</code> </dt> <dd> <p> Behave as though this were part of a merge between common ancestors in a recursive merge. If a helper program is specified by the - <tt>[merge "<driver>"] recursive</tt> configuration, it will + <code>[merge "<driver>"] recursive</code> configuration, it will be used (see <a href="../gitattributes.html">gitattributes(5)</a>). </p> </dd> <dt class="hdlist1"> -<tt>variant</tt> +<code>variant</code> </dt> <dd> <p> Resolve local conflicts automatically in favor of one side or the other (as in <em>git merge-file</em> - <tt>--ours</tt>/<tt>--theirs</tt>/<tt>--union</tt>). Can be <tt>0</tt>, - <tt>XDL_MERGE_FAVOR_OURS</tt>, <tt>XDL_MERGE_FAVOR_THEIRS</tt>, or - <tt>XDL_MERGE_FAVOR_UNION</tt>. + <code>--ours</code>/<code>--theirs</code>/<code>--union</code>). Can be <code>0</code>, + <code>XDL_MERGE_FAVOR_OURS</code>, <code>XDL_MERGE_FAVOR_THEIRS</code>, or + <code>XDL_MERGE_FAVOR_UNION</code>. </p> </dd> <dt class="hdlist1"> -<tt>renormalize</tt> +<code>renormalize</code> </dt> <dd> <p> @@ -834,14 +832,14 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>ll_merge</tt> +<code>ll_merge</code> </dt> <dd> <p> Perform a three-way single-file merge in core. This is - a thin wrapper around <tt>xdl_merge</tt> that takes the path and - any merge backend specified in <tt>.gitattributes</tt> or - <tt>.git/info/attributes</tt> into account. Returns 0 for a + a thin wrapper around <code>xdl_merge</code> that takes the path and + any merge backend specified in <code>.gitattributes</code> or + <code>.git/info/attributes</code> into account. Returns 0 for a clean merge. </p> </dd> @@ -850,9 +848,9 @@ <div class="ulist"><ul> <li> <p> -Prepare a <tt>struct ll_merge_options</tt> to record options. - If you have no special requests, skip this and pass <tt>NULL</tt> - as the <tt>opts</tt> parameter to use the default options. +Prepare a <code>struct ll_merge_options</code> to record options. + If you have no special requests, skip this and pass <code>NULL</code> + as the <code>opts</code> parameter to use the default options. </p> </li> <li> @@ -863,32 +861,32 @@ <li> <p> Allocate and fill variables with the file’s original content - and two modified versions (using <tt>read_mmfile</tt>, for example). + and two modified versions (using <code>read_mmfile</code>, for example). </p> </li> <li> <p> -Call <tt>ll_merge()</tt>. +Call <code>ll_merge()</code>. </p> </li> <li> <p> -Read the merged content from <tt>result_buf.ptr</tt> and <tt>result_buf.size</tt>. +Read the merged content from <code>result_buf.ptr</code> and <code>result_buf.size</code>. </p> </li> <li> <p> Release buffers when finished. A simple - <tt>free(ancestor.ptr); free(ours.ptr); free(theirs.ptr); - free(result_buf.ptr);</tt> will do. + <code>free(ancestor.ptr); free(ours.ptr); free(theirs.ptr); + free(result_buf.ptr);</code> will do. </p> </li> </ul></div> -<div class="paragraph"><p>If the modifications do not merge cleanly, <tt>ll_merge</tt> will return a -nonzero value and <tt>result_buf</tt> will generally include a description of -the conflict bracketed by markers such as the traditional <tt><<<<<<<</tt> -and <tt>>>>>>>></tt>.</p></div> -<div class="paragraph"><p>The <tt>ancestor_label</tt>, <tt>our_label</tt>, and <tt>their_label</tt> parameters are +<div class="paragraph"><p>If the modifications do not merge cleanly, <code>ll_merge</code> will return a +nonzero value and <code>result_buf</code> will generally include a description of +the conflict bracketed by markers such as the traditional <code><<<<<<<</code> +and <code>>>>>>>></code>.</p></div> +<div class="paragraph"><p>The <code>ancestor_label</code>, <code>our_label</code>, and <code>their_label</code> parameters are used to label the different sides of a conflict if the merge driver supports this.</p></div> </div>
diff --git a/technical/api-object-access.html b/technical/api-object-access.html index ac4f775..fea7725 100644 --- a/technical/api-object-access.html +++ b/technical/api-object-access.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>object access API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/technical/api-parse-options.html b/technical/api-parse-options.html index 4dd0cb8..d9132f0 100644 --- a/technical/api-parse-options.html +++ b/technical/api-parse-options.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>parse-options API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -747,7 +745,7 @@ <div class="sect1"> <h2 id="_basics">Basics</h2> <div class="sectionbody"> -<div class="paragraph"><p>The argument vector <tt>argv[]</tt> may usually contain mandatory or optional +<div class="paragraph"><p>The argument vector <code>argv[]</code> may usually contain mandatory or optional <em>non-option arguments</em>, e.g. a filename or a branch, and <em>options</em>. Options are optional arguments that start with a dash and that allow to change the behavior of a command.</p></div> @@ -764,9 +762,9 @@ <li> <p> There are basically two forms of options: - <em>Short options</em> consist of one dash (<tt>-</tt>) and one alphanumeric + <em>Short options</em> consist of one dash (<code>-</code>) and one alphanumeric character. - <em>Long options</em> begin with two dashes (<tt>--</tt>) and some + <em>Long options</em> begin with two dashes (<code>--</code>) and some alphanumeric characters. </p> </li> @@ -782,8 +780,8 @@ <li> <p> <em>stuck</em> and <em>separate form</em> of options with arguments. - <tt>-oArg</tt> is stuck, <tt>-o Arg</tt> is separate form. - <tt>--option=Arg</tt> is stuck, <tt>--option Arg</tt> is separate form. + <code>-oArg</code> is stuck, <code>-o Arg</code> is separate form. + <code>--option=Arg</code> is stuck, <code>--option Arg</code> is separate form. </p> </li> <li> @@ -794,23 +792,23 @@ </li> <li> <p> -Short options may be bundled, e.g. <tt>-a -b</tt> can be specified as <tt>-ab</tt>. +Short options may be bundled, e.g. <code>-a -b</code> can be specified as <code>-ab</code>. </p> </li> <li> <p> Boolean long options can be <em>negated</em> (or <em>unset</em>) by prepending - <tt>no-</tt>, e.g. <tt>--no-abbrev</tt> instead of <tt>--abbrev</tt>. Conversely, - options that begin with <tt>no-</tt> can be <em>negated</em> by removing it. + <code>no-</code>, e.g. <code>--no-abbrev</code> instead of <code>--abbrev</code>. Conversely, + options that begin with <code>no-</code> can be <em>negated</em> by removing it. Other long options can be unset (e.g., set string to NULL, set - integer to 0) by prepending <tt>no-</tt>. + integer to 0) by prepending <code>no-</code>. </p> </li> <li> <p> -Options and non-option arguments can clearly be separated using the <tt>--</tt> - option, e.g. <tt>-a -b --option -- --this-is-a-file</tt> indicates that - <tt>--this-is-a-file</tt> must not be processed as an option. +Options and non-option arguments can clearly be separated using the <code>--</code> + option, e.g. <code>-a -b --option -- --this-is-a-file</code> indicates that + <code>--this-is-a-file</code> must not be processed as an option. </p> </li> </ul></div> @@ -822,34 +820,34 @@ <div class="olist arabic"><ol class="arabic"> <li> <p> -<tt>#include "parse-options.h"</tt> +<code>#include "parse-options.h"</code> </p> </li> <li> <p> define a NULL-terminated - <tt>static const char * const builtin_foo_usage[]</tt> array + <code>static const char * const builtin_foo_usage[]</code> array containing alternative usage strings </p> </li> <li> <p> -define <tt>builtin_foo_options</tt> array as described below +define <code>builtin_foo_options</code> array as described below in section <em>Data Structure</em>. </p> </li> <li> <p> -in <tt>cmd_foo(int argc, const char **argv, const char *prefix)</tt> +in <code>cmd_foo(int argc, const char **argv, const char *prefix)</code> call </p> <div class="literalblock"> <div class="content"> -<pre><tt>argc = parse_options(argc, argv, prefix, builtin_foo_options, builtin_foo_usage, flags);</tt></pre> +<pre><code>argc = parse_options(argc, argv, prefix, builtin_foo_options, builtin_foo_usage, flags);</code></pre> </div></div> -<div class="paragraph"><p><tt>parse_options()</tt> will filter out the processed options of <tt>argv[]</tt> and leave the -non-option arguments in <tt>argv[]</tt>. -<tt>argc</tt> is updated appropriately because of the assignment.</p></div> +<div class="paragraph"><p><code>parse_options()</code> will filter out the processed options of <code>argv[]</code> and leave the +non-option arguments in <code>argv[]</code>. +<code>argc</code> is updated appropriately because of the assignment.</p></div> <div class="paragraph"><p>You can also pass NULL instead of a usage array as the fifth parameter of parse_options(), to avoid displaying a help screen with usage info and option list. This should only be done if necessary, e.g. to implement @@ -858,16 +856,16 @@ <div class="paragraph"><p>Flags are the bitwise-or of:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>PARSE_OPT_KEEP_DASHDASH</tt> +<code>PARSE_OPT_KEEP_DASHDASH</code> </dt> <dd> <p> - Keep the <tt>--</tt> that usually separates options from + Keep the <code>--</code> that usually separates options from non-option arguments. </p> </dd> <dt class="hdlist1"> -<tt>PARSE_OPT_STOP_AT_NON_OPTION</tt> +<code>PARSE_OPT_STOP_AT_NON_OPTION</code> </dt> <dd> <p> @@ -877,7 +875,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>PARSE_OPT_KEEP_ARGV0</tt> +<code>PARSE_OPT_KEEP_ARGV0</code> </dt> <dd> <p> @@ -886,29 +884,29 @@ </p> </dd> <dt class="hdlist1"> -<tt>PARSE_OPT_KEEP_UNKNOWN</tt> +<code>PARSE_OPT_KEEP_UNKNOWN</code> </dt> <dd> <p> Keep unknown arguments instead of erroring out. This doesn’t work for all combinations of arguments as users might expect - it to do. E.g. if the first argument in <tt>--unknown --known</tt> + it to do. E.g. if the first argument in <code>--unknown --known</code> takes a value (which we can’t know), the second one is mistakenly interpreted as a known option. Similarly, if - <tt>PARSE_OPT_STOP_AT_NON_OPTION</tt> is set, the second argument in - <tt>--unknown value</tt> will be mistakenly interpreted as a + <code>PARSE_OPT_STOP_AT_NON_OPTION</code> is set, the second argument in + <code>--unknown value</code> will be mistakenly interpreted as a non-option, not as a value belonging to the unknown option, the parser early. That’s why parse_options() errors out if both options are set. </p> </dd> <dt class="hdlist1"> -<tt>PARSE_OPT_NO_INTERNAL_HELP</tt> +<code>PARSE_OPT_NO_INTERNAL_HELP</code> </dt> <dd> <p> - By default, parse_options() handles <tt>-h</tt>, <tt>--help</tt> and - <tt>--help-all</tt> internally, by showing a help screen. This option + By default, parse_options() handles <code>-h</code>, <code>--help</code> and + <code>--help-all</code> internally, by showing a help screen. This option turns it off and allows one to add custom handlers for these options, or to just leave them unknown. </p> @@ -921,209 +919,209 @@ <div class="sect1"> <h2 id="_data_structure">Data Structure</h2> <div class="sectionbody"> -<div class="paragraph"><p>The main data structure is an array of the <tt>option</tt> struct, -say <tt>static struct option builtin_add_options[]</tt>. +<div class="paragraph"><p>The main data structure is an array of the <code>option</code> struct, +say <code>static struct option builtin_add_options[]</code>. There are some macros to easily define options:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>OPT__ABBREV(&int_var)</tt> +<code>OPT__ABBREV(&int_var)</code> </dt> <dd> <p> - Add <tt>--abbrev[=<n>]</tt>. + Add <code>--abbrev[=<n>]</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT__COLOR(&int_var, description)</tt> +<code>OPT__COLOR(&int_var, description)</code> </dt> <dd> <p> - Add <tt>--color[=<when>]</tt> and <tt>--no-color</tt>. + Add <code>--color[=<when>]</code> and <code>--no-color</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT__DRY_RUN(&int_var, description)</tt> +<code>OPT__DRY_RUN(&int_var, description)</code> </dt> <dd> <p> - Add <tt>-n, --dry-run</tt>. + Add <code>-n, --dry-run</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT__FORCE(&int_var, description)</tt> +<code>OPT__FORCE(&int_var, description)</code> </dt> <dd> <p> - Add <tt>-f, --force</tt>. + Add <code>-f, --force</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT__QUIET(&int_var, description)</tt> +<code>OPT__QUIET(&int_var, description)</code> </dt> <dd> <p> - Add <tt>-q, --quiet</tt>. + Add <code>-q, --quiet</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT__VERBOSE(&int_var, description)</tt> +<code>OPT__VERBOSE(&int_var, description)</code> </dt> <dd> <p> - Add <tt>-v, --verbose</tt>. + Add <code>-v, --verbose</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_GROUP(description)</tt> +<code>OPT_GROUP(description)</code> </dt> <dd> <p> - Start an option group. <tt>description</tt> is a short string that + Start an option group. <code>description</code> is a short string that describes the group or an empty string. Start the description with an upper-case letter. </p> </dd> <dt class="hdlist1"> -<tt>OPT_BOOL(short, long, &int_var, description)</tt> +<code>OPT_BOOL(short, long, &int_var, description)</code> </dt> <dd> <p> - Introduce a boolean option. <tt>int_var</tt> is set to one with - <tt>--option</tt> and set to zero with <tt>--no-option</tt>. + Introduce a boolean option. <code>int_var</code> is set to one with + <code>--option</code> and set to zero with <code>--no-option</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_COUNTUP(short, long, &int_var, description)</tt> +<code>OPT_COUNTUP(short, long, &int_var, description)</code> </dt> <dd> <p> Introduce a count-up option. - <tt>int_var</tt> is incremented on each use of <tt>--option</tt>, and - reset to zero with <tt>--no-option</tt>. + <code>int_var</code> is incremented on each use of <code>--option</code>, and + reset to zero with <code>--no-option</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_BIT(short, long, &int_var, description, mask)</tt> +<code>OPT_BIT(short, long, &int_var, description, mask)</code> </dt> <dd> <p> Introduce a boolean option. - If used, <tt>int_var</tt> is bitwise-ored with <tt>mask</tt>. + If used, <code>int_var</code> is bitwise-ored with <code>mask</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_NEGBIT(short, long, &int_var, description, mask)</tt> +<code>OPT_NEGBIT(short, long, &int_var, description, mask)</code> </dt> <dd> <p> Introduce a boolean option. - If used, <tt>int_var</tt> is bitwise-anded with the inverted <tt>mask</tt>. + If used, <code>int_var</code> is bitwise-anded with the inverted <code>mask</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_SET_INT(short, long, &int_var, description, integer)</tt> +<code>OPT_SET_INT(short, long, &int_var, description, integer)</code> </dt> <dd> <p> Introduce an integer option. - <tt>int_var</tt> is set to <tt>integer</tt> with <tt>--option</tt>, and - reset to zero with <tt>--no-option</tt>. + <code>int_var</code> is set to <code>integer</code> with <code>--option</code>, and + reset to zero with <code>--no-option</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_STRING(short, long, &str_var, arg_str, description)</tt> +<code>OPT_STRING(short, long, &str_var, arg_str, description)</code> </dt> <dd> <p> Introduce an option with string argument. - The string argument is put into <tt>str_var</tt>. + The string argument is put into <code>str_var</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_INTEGER(short, long, &int_var, description)</tt> +<code>OPT_INTEGER(short, long, &int_var, description)</code> </dt> <dd> <p> Introduce an option with integer argument. - The integer is put into <tt>int_var</tt>. + The integer is put into <code>int_var</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_DATE(short, long, &int_var, description)</tt> +<code>OPT_DATE(short, long, &int_var, description)</code> </dt> <dd> <p> - Introduce an option with date argument, see <tt>approxidate()</tt>. - The timestamp is put into <tt>int_var</tt>. + Introduce an option with date argument, see <code>approxidate()</code>. + The timestamp is put into <code>int_var</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_EXPIRY_DATE(short, long, &int_var, description)</tt> +<code>OPT_EXPIRY_DATE(short, long, &int_var, description)</code> </dt> <dd> <p> - Introduce an option with expiry date argument, see <tt>parse_expiry_date()</tt>. - The timestamp is put into <tt>int_var</tt>. + Introduce an option with expiry date argument, see <code>parse_expiry_date()</code>. + The timestamp is put into <code>int_var</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_CALLBACK(short, long, &var, arg_str, description, func_ptr)</tt> +<code>OPT_CALLBACK(short, long, &var, arg_str, description, func_ptr)</code> </dt> <dd> <p> Introduce an option with argument. - The argument will be fed into the function given by <tt>func_ptr</tt> - and the result will be put into <tt>var</tt>. + The argument will be fed into the function given by <code>func_ptr</code> + and the result will be put into <code>var</code>. See <em>Option Callbacks</em> below for a more elaborate description. </p> </dd> <dt class="hdlist1"> -<tt>OPT_FILENAME(short, long, &var, description)</tt> +<code>OPT_FILENAME(short, long, &var, description)</code> </dt> <dd> <p> Introduce an option with a filename argument. The filename will be prefixed by passing the filename along with - the prefix argument of <tt>parse_options()</tt> to <tt>prefix_filename()</tt>. + the prefix argument of <code>parse_options()</code> to <code>prefix_filename()</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_ARGUMENT(long, description)</tt> +<code>OPT_ARGUMENT(long, description)</code> </dt> <dd> <p> - Introduce a long-option argument that will be kept in <tt>argv[]</tt>. + Introduce a long-option argument that will be kept in <code>argv[]</code>. </p> </dd> <dt class="hdlist1"> -<tt>OPT_NUMBER_CALLBACK(&var, description, func_ptr)</tt> +<code>OPT_NUMBER_CALLBACK(&var, description, func_ptr)</code> </dt> <dd> <p> Recognize numerical options like -123 and feed the integer as - if it was an argument to the function given by <tt>func_ptr</tt>. - The result will be put into <tt>var</tt>. There can be only one such + if it was an argument to the function given by <code>func_ptr</code>. + The result will be put into <code>var</code>. There can be only one such option definition. It cannot be negated and it takes no arguments. Short options that happen to be digits take precedence over it. </p> </dd> <dt class="hdlist1"> -<tt>OPT_COLOR_FLAG(short, long, &int_var, description)</tt> +<code>OPT_COLOR_FLAG(short, long, &int_var, description)</code> </dt> <dd> <p> Introduce an option that takes an optional argument that can have one of three values: "always", "never", or "auto". If the - argument is not given, it defaults to "always". The <tt>--no-</tt> form - works like <tt>--long=never</tt>; it cannot take an argument. If - "always", set <tt>int_var</tt> to 1; if "never", set <tt>int_var</tt> to 0; if - "auto", set <tt>int_var</tt> to 1 if stdout is a tty or a pager, + argument is not given, it defaults to "always". The <code>--no-</code> form + works like <code>--long=never</code>; it cannot take an argument. If + "always", set <code>int_var</code> to 1; if "never", set <code>int_var</code> to 0; if + "auto", set <code>int_var</code> to 1 if stdout is a tty or a pager, 0 otherwise. </p> </dd> <dt class="hdlist1"> -<tt>OPT_NOOP_NOARG(short, long)</tt> +<code>OPT_NOOP_NOARG(short, long)</code> </dt> <dd> <p> @@ -1133,42 +1131,42 @@ </p> </dd> </dl></div> -<div class="paragraph"><p>The last element of the array must be <tt>OPT_END()</tt>.</p></div> +<div class="paragraph"><p>The last element of the array must be <code>OPT_END()</code>.</p></div> <div class="paragraph"><p>If not stated otherwise, interpret the arguments as follows:</p></div> <div class="ulist"><ul> <li> <p> -<tt>short</tt> is a character for the short option - (e.g. <tt>'e'</tt> for <tt>-e</tt>, use <tt>0</tt> to omit), +<code>short</code> is a character for the short option + (e.g. <code>'e'</code> for <code>-e</code>, use <code>0</code> to omit), </p> </li> <li> <p> -<tt>long</tt> is a string for the long option - (e.g. <tt>"example"</tt> for <tt>--example</tt>, use <tt>NULL</tt> to omit), +<code>long</code> is a string for the long option + (e.g. <code>"example"</code> for <code>--example</code>, use <code>NULL</code> to omit), </p> </li> <li> <p> -<tt>int_var</tt> is an integer variable, +<code>int_var</code> is an integer variable, </p> </li> <li> <p> -<tt>str_var</tt> is a string variable (<tt>char *</tt>), +<code>str_var</code> is a string variable (<code>char *</code>), </p> </li> <li> <p> -<tt>arg_str</tt> is the string that is shown as argument - (e.g. <tt>"branch"</tt> will result in <tt><branch></tt>). - If set to <tt>NULL</tt>, three dots (<tt>...</tt>) will be displayed. +<code>arg_str</code> is the string that is shown as argument + (e.g. <code>"branch"</code> will result in <code><branch></code>). + If set to <code>NULL</code>, three dots (<code>...</code>) will be displayed. </p> </li> <li> <p> -<tt>description</tt> is a short string to describe the effect of the option. - It shall begin with a lower-case letter and a full stop (<tt>.</tt>) shall be +<code>description</code> is a short string to describe the effect of the option. + It shall begin with a lower-case letter and a full stop (<code>.</code>) shall be omitted at the end. </p> </li> @@ -1181,29 +1179,29 @@ <div class="paragraph"><p>The function must be defined in this form:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>int func(const struct option *opt, const char *arg, int unset)</tt></pre> +<pre><code>int func(const struct option *opt, const char *arg, int unset)</code></pre> </div></div> <div class="paragraph"><p>The callback mechanism is as follows:</p></div> <div class="ulist"><ul> <li> <p> -Inside <tt>func</tt>, the only interesting member of the structure - given by <tt>opt</tt> is the void pointer <tt>opt->value</tt>. - <tt>*opt->value</tt> will be the value that is saved into <tt>var</tt>, if you - use <tt>OPT_CALLBACK()</tt>. - For example, do <tt>*(unsigned long *)opt->value = 42;</tt> to get 42 - into an <tt>unsigned long</tt> variable. +Inside <code>func</code>, the only interesting member of the structure + given by <code>opt</code> is the void pointer <code>opt->value</code>. + <code>*opt->value</code> will be the value that is saved into <code>var</code>, if you + use <code>OPT_CALLBACK()</code>. + For example, do <code>*(unsigned long *)opt->value = 42;</code> to get 42 + into an <code>unsigned long</code> variable. </p> </li> <li> <p> -Return value <tt>0</tt> indicates success and non-zero return - value will invoke <tt>usage_with_options()</tt> and, thus, die. +Return value <code>0</code> indicates success and non-zero return + value will invoke <code>usage_with_options()</code> and, thus, die. </p> </li> <li> <p> -If the user negates the option, <tt>arg</tt> is <tt>NULL</tt> and <tt>unset</tt> is 1. +If the user negates the option, <code>arg</code> is <code>NULL</code> and <code>unset</code> is 1. </p> </li> </ul></div> @@ -1215,21 +1213,21 @@ <div class="paragraph"><p>If you need, for example, option callbacks with optional arguments or without arguments at all, or if you need other special cases, that are not handled by the macros above, you need to specify the -members of the <tt>option</tt> structure manually.</p></div> +members of the <code>option</code> structure manually.</p></div> <div class="paragraph"><p>This is not covered in this document, but well documented -in <tt>parse-options.h</tt> itself.</p></div> +in <code>parse-options.h</code> itself.</p></div> </div> </div> <div class="sect1"> <h2 id="_examples">Examples</h2> <div class="sectionbody"> -<div class="paragraph"><p>See <tt>test-parse-options.c</tt> and -<tt>builtin/add.c</tt>, -<tt>builtin/clone.c</tt>, -<tt>builtin/commit.c</tt>, -<tt>builtin/fetch.c</tt>, -<tt>builtin/fsck.c</tt>, -<tt>builtin/rm.c</tt> +<div class="paragraph"><p>See <code>test-parse-options.c</code> and +<code>builtin/add.c</code>, +<code>builtin/clone.c</code>, +<code>builtin/commit.c</code>, +<code>builtin/fetch.c</code>, +<code>builtin/fsck.c</code>, +<code>builtin/rm.c</code> for real-world examples.</p></div> </div> </div>
diff --git a/technical/api-quote.html b/technical/api-quote.html index cd7f665..ca1ae9d 100644 --- a/technical/api-quote.html +++ b/technical/api-quote.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>quote API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/technical/api-ref-iteration.html b/technical/api-ref-iteration.html index 82133f5..49afbe6 100644 --- a/technical/api-ref-iteration.html +++ b/technical/api-ref-iteration.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>ref iteration API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -745,8 +743,8 @@ signature:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>int handle_one_ref(const char *refname, const unsigned char *sha1, - int flags, void *cb_data);</tt></pre> +<pre><code>int handle_one_ref(const char *refname, const unsigned char *sha1, + int flags, void *cb_data);</code></pre> </div></div> <div class="paragraph"><p>There are different kinds of iterate functions which all take a callback of this type. The callback is then called for each found ref @@ -760,54 +758,54 @@ <div class="ulist"><ul> <li> <p> -<tt>head_ref()</tt> just iterates the head ref. +<code>head_ref()</code> just iterates the head ref. </p> </li> <li> <p> -<tt>for_each_ref()</tt> iterates all refs. +<code>for_each_ref()</code> iterates all refs. </p> </li> <li> <p> -<tt>for_each_ref_in()</tt> iterates all refs which have a defined prefix and +<code>for_each_ref_in()</code> iterates all refs which have a defined prefix and strips that prefix from the passed variable refname. </p> </li> <li> <p> -<tt>for_each_tag_ref()</tt>, <tt>for_each_branch_ref()</tt>, <tt>for_each_remote_ref()</tt>, - <tt>for_each_replace_ref()</tt> iterate refs from the respective area. +<code>for_each_tag_ref()</code>, <code>for_each_branch_ref()</code>, <code>for_each_remote_ref()</code>, + <code>for_each_replace_ref()</code> iterate refs from the respective area. </p> </li> <li> <p> -<tt>for_each_glob_ref()</tt> iterates all refs that match the specified glob +<code>for_each_glob_ref()</code> iterates all refs that match the specified glob pattern. </p> </li> <li> <p> -<tt>for_each_glob_ref_in()</tt> the previous and <tt>for_each_ref_in()</tt> combined. +<code>for_each_glob_ref_in()</code> the previous and <code>for_each_ref_in()</code> combined. </p> </li> <li> <p> -<tt>head_ref_submodule()</tt>, <tt>for_each_ref_submodule()</tt>, - <tt>for_each_ref_in_submodule()</tt>, <tt>for_each_tag_ref_submodule()</tt>, - <tt>for_each_branch_ref_submodule()</tt>, <tt>for_each_remote_ref_submodule()</tt> +<code>head_ref_submodule()</code>, <code>for_each_ref_submodule()</code>, + <code>for_each_ref_in_submodule()</code>, <code>for_each_tag_ref_submodule()</code>, + <code>for_each_branch_ref_submodule()</code>, <code>for_each_remote_ref_submodule()</code> do the same as the functions described above but for a specified submodule. </p> </li> <li> <p> -<tt>for_each_rawref()</tt> can be used to learn about broken ref and symref. +<code>for_each_rawref()</code> can be used to learn about broken ref and symref. </p> </li> <li> <p> -<tt>for_each_reflog()</tt> iterates each reflog file. +<code>for_each_reflog()</code> iterates each reflog file. </p> </li> </ul></div> @@ -821,11 +819,11 @@ this:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>const char *path = "path/to/submodule" +<pre><code>const char *path = "path/to/submodule" if (add_submodule_odb(path)) - die("Error submodule '%s' not populated.", path);</tt></pre> + die("Error submodule '%s' not populated.", path);</code></pre> </div></div> -<div class="paragraph"><p><tt>add_submodule_odb()</tt> will return zero on success. If you +<div class="paragraph"><p><code>add_submodule_odb()</code> will return zero on success. If you do not do this you will get an error for each ref that it does not point to a valid object.</p></div> <div class="paragraph"><p>Note: As a side-effect of this you can not safely assume that all @@ -838,7 +836,7 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt>static int handle_remote_ref(const char *refname, +<pre><code>static int handle_remote_ref(const char *refname, const unsigned char *sha1, int flags, void *cb_data) { struct strbuf *output = cb_data; @@ -850,7 +848,7 @@ struct strbuf output = STRBUF_INIT; for_each_remote_ref(handle_remote_ref, &output); - printf("%s", output.buf);</tt></pre> + printf("%s", output.buf);</code></pre> </div></div> </div> </div>
diff --git a/technical/api-remote.html b/technical/api-remote.html index 45a363f..7d5bc68 100644 --- a/technical/api-remote.html +++ b/technical/api-remote.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Remotes configuration API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -752,7 +750,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>name</tt> +<code>name</code> </dt> <dd> <p> @@ -760,7 +758,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>url</tt> +<code>url</code> </dt> <dd> <p> @@ -768,7 +766,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>pushurl</tt> +<code>pushurl</code> </dt> <dd> <p> @@ -776,7 +774,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>push</tt> +<code>push</code> </dt> <dd> <p> @@ -786,7 +784,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>fetch</tt> +<code>fetch</code> </dt> <dd> <p> @@ -796,7 +794,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>fetch_tags</tt> +<code>fetch_tags</code> </dt> <dd> <p> @@ -808,7 +806,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>receivepack</tt>, <tt>uploadpack</tt> +<code>receivepack</code>, <code>uploadpack</code> </dt> <dd> <p> @@ -817,7 +815,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>http_proxy</tt> +<code>http_proxy</code> </dt> <dd> <p> @@ -857,7 +855,7 @@ <div class="paragraph"><p>It contains:</p></div> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>name</tt> +<code>name</code> </dt> <dd> <p> @@ -865,7 +863,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>refname</tt> +<code>refname</code> </dt> <dd> <p> @@ -873,7 +871,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>remote_name</tt> +<code>remote_name</code> </dt> <dd> <p> @@ -881,7 +879,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>remote</tt> +<code>remote</code> </dt> <dd> <p> @@ -889,7 +887,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>merge_name</tt> +<code>merge_name</code> </dt> <dd> <p> @@ -897,7 +895,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>merge</tt> +<code>merge</code> </dt> <dd> <p> @@ -907,7 +905,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>merge_nr</tt> +<code>merge_nr</code> </dt> <dd> <p>
diff --git a/technical/api-revision-walking.html b/technical/api-revision-walking.html index f50212a..50dfe76 100644 --- a/technical/api-revision-walking.html +++ b/technical/api-revision-walking.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>revision walking API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -758,26 +756,26 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>init_revisions</tt> +<code>init_revisions</code> </dt> <dd> <p> Initialize a rev_info structure with default values. The second - parameter may be NULL or can be prefix path, and then the <tt>.prefix</tt> + parameter may be NULL or can be prefix path, and then the <code>.prefix</code> variable will be set to it. This is typically the first function you want to call when you want to deal with a revision list. After calling this function, you are free to customize options, like set - <tt>.ignore_merges</tt> to 0 if you don’t want to ignore merges, and so on. See - <tt>revision.h</tt> for a complete list of available options. + <code>.ignore_merges</code> to 0 if you don’t want to ignore merges, and so on. See + <code>revision.h</code> for a complete list of available options. </p> </dd> <dt class="hdlist1"> -<tt>add_pending_object</tt> +<code>add_pending_object</code> </dt> <dd> <p> This function can be used if you want to add commit objects as revision - information. You can use the <tt>UNINTERESTING</tt> object flag to indicate if + information. You can use the <code>UNINTERESTING</code> object flag to indicate if you want to include or exclude the given commit (and commits reachable from the given commit) from the revision list. </p> @@ -793,11 +791,11 @@ </div> </dd> <dt class="hdlist1"> -<tt>setup_revisions</tt> +<code>setup_revisions</code> </dt> <dd> <p> - Parse revision information, filling in the <tt>rev_info</tt> structure, and + Parse revision information, filling in the <code>rev_info</code> structure, and removing the used arguments from the argument list. Returns the number of arguments left that weren’t recognized, which are also moved to the head of the argument list. The last parameter is used in case no @@ -805,7 +803,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>prepare_revision_walk</tt> +<code>prepare_revision_walk</code> </dt> <dd> <p> @@ -815,17 +813,17 @@ </p> </dd> <dt class="hdlist1"> -<tt>get_revision</tt> +<code>get_revision</code> </dt> <dd> <p> - Takes a pointer to a <tt>rev_info</tt> structure and iterates over it, - returning a <tt>struct commit *</tt> each time you call it. The end of the + Takes a pointer to a <code>rev_info</code> structure and iterates over it, + returning a <code>struct commit *</code> each time you call it. The end of the revision list is indicated by returning a NULL pointer. </p> </dd> <dt class="hdlist1"> -<tt>reset_revision_walk</tt> +<code>reset_revision_walk</code> </dt> <dd> <p>
diff --git a/technical/api-run-command.html b/technical/api-run-command.html index 6b8c8f6..b361e0c 100644 --- a/technical/api-run-command.html +++ b/technical/api-run-command.html
@@ -749,13 +749,16 @@ <div class="sect1"> <h2 id="_functions">Functions</h2> <div class="sectionbody"> -<div class="paragraph"><p><code>child_process_init</code></p></div> -<div class="literalblock"> -<div class="content"> -<pre><code>Initialize a struct child_process variable.</code></pre> -</div></div> <div class="dlist"><dl> <dt class="hdlist1"> +<code>child_process_init</code> +</dt> +<dd> +<p> + Initialize a struct child_process variable. +</p> +</dd> +<dt class="hdlist1"> <code>start_command</code> </dt> <dd> @@ -1166,7 +1169,7 @@ <div id="footnotes"><hr /></div> <div id="footer"> <div id="footer-text"> -Last updated 2014-10-24 15:27:52 PDT +Last updated 2014-10-31 13:20:47 PDT </div> </div> </body>
diff --git a/technical/api-run-command.txt b/technical/api-run-command.txt index 3f12fcd..a9fdb45 100644 --- a/technical/api-run-command.txt +++ b/technical/api-run-command.txt
@@ -13,7 +13,7 @@ Functions --------- -`child_process_init` +`child_process_init`:: Initialize a struct child_process variable.
diff --git a/technical/api-setup.html b/technical/api-setup.html index ed9ba7b..4b7358f 100644 --- a/technical/api-setup.html +++ b/technical/api-setup.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>setup API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/technical/api-sha1-array.html b/technical/api-sha1-array.html index 646c54b..58baada 100644 --- a/technical/api-sha1-array.html +++ b/technical/api-sha1-array.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>sha1-array API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -751,14 +749,14 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>struct sha1_array</tt> +<code>struct sha1_array</code> </dt> <dd> <p> A single array of SHA-1 hashes. This should be initialized by - assignment from <tt>SHA1_ARRAY_INIT</tt>. The <tt>sha1</tt> member contains - the actual data. The <tt>nr</tt> member contains the number of items in - the set. The <tt>alloc</tt> and <tt>sorted</tt> members are used internally, + assignment from <code>SHA1_ARRAY_INIT</code>. The <code>sha1</code> member contains + the actual data. The <code>nr</code> member contains the number of items in + the set. The <code>alloc</code> and <code>sorted</code> members are used internally, and should not be needed by API callers. </p> </dd> @@ -770,7 +768,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>sha1_array_append</tt> +<code>sha1_array_append</code> </dt> <dd> <p> @@ -780,7 +778,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>sha1_array_lookup</tt> +<code>sha1_array_lookup</code> </dt> <dd> <p> @@ -791,7 +789,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>sha1_array_clear</tt> +<code>sha1_array_clear</code> </dt> <dd> <p> @@ -800,7 +798,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>sha1_array_for_each_unique</tt> +<code>sha1_array_for_each_unique</code> </dt> <dd> <p> @@ -817,7 +815,7 @@ <div class="sectionbody"> <div class="listingblock"> <div class="content"> -<pre><tt>void print_callback(const unsigned char sha1[20], +<pre><code>void print_callback(const unsigned char sha1[20], void *data) { printf("%s\n", sha1_to_hex(sha1)); @@ -845,7 +843,7 @@ * in linear time. */ sha1_array_for_each_unique(&hashes, print_callback, NULL); -}</tt></pre> +}</code></pre> </div></div> </div> </div>
diff --git a/technical/api-sigchain.html b/technical/api-sigchain.html index 2860ae1..3f8d1f8 100644 --- a/technical/api-sigchain.html +++ b/technical/api-sigchain.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>sigchain API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -763,7 +761,7 @@ and installation code should look something like:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> void clean_foo_on_signal(int sig) +<pre><code> void clean_foo_on_signal(int sig) { clean_foo(); sigchain_pop(sig); @@ -775,7 +773,7 @@ sigchain_push_common(clean_foo_on_signal); mess_up_foo(); clean_foo(); - }</tt></pre> + }</code></pre> </div></div> <div class="paragraph"><p>Handlers are given the typedef of sigchain_fun. This is the same type that is given to signal() or sigaction(). It is perfectly reasonable to
diff --git a/technical/api-string-list.html b/technical/api-string-list.html index 0898bd6..b47e029 100644 --- a/technical/api-string-list.html +++ b/technical/api-string-list.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>string-list API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -742,81 +740,81 @@ <div class="sectionbody"> <div class="paragraph"><p>The string_list API offers a data structure and functions to handle sorted and unsorted string lists. A "sorted" list is one whose -entries are sorted by string value in <tt>strcmp()</tt> order.</p></div> +entries are sorted by string value in <code>strcmp()</code> order.</p></div> <div class="paragraph"><p>The <em>string_list</em> struct used to be called <em>path_list</em>, but was renamed because it is not specific to paths.</p></div> <div class="paragraph"><p>The caller:</p></div> <div class="olist arabic"><ol class="arabic"> <li> <p> -Allocates and clears a <tt>struct string_list</tt> variable. +Allocates and clears a <code>struct string_list</code> variable. </p> </li> <li> <p> -Initializes the members. You might want to set the flag <tt>strdup_strings</tt> +Initializes the members. You might want to set the flag <code>strdup_strings</code> if the strings should be strdup()ed. For example, this is necessary when you add something like git_path("…"), since that function returns a static buffer that will change with the next call to git_path(). </p> -<div class="paragraph"><p>If you need something advanced, you can manually malloc() the <tt>items</tt> +<div class="paragraph"><p>If you need something advanced, you can manually malloc() the <code>items</code> member (you need this if you add things later) and you should set the -<tt>nr</tt> and <tt>alloc</tt> members in that case, too.</p></div> +<code>nr</code> and <code>alloc</code> members in that case, too.</p></div> </li> <li> <p> -Adds new items to the list, using <tt>string_list_append</tt>, - <tt>string_list_append_nodup</tt>, <tt>string_list_insert</tt>, - <tt>string_list_split</tt>, and/or <tt>string_list_split_in_place</tt>. +Adds new items to the list, using <code>string_list_append</code>, + <code>string_list_append_nodup</code>, <code>string_list_insert</code>, + <code>string_list_split</code>, and/or <code>string_list_split_in_place</code>. </p> </li> <li> <p> -Can check if a string is in the list using <tt>string_list_has_string</tt> or - <tt>unsorted_string_list_has_string</tt> and get it from the list using - <tt>string_list_lookup</tt> for sorted lists. +Can check if a string is in the list using <code>string_list_has_string</code> or + <code>unsorted_string_list_has_string</code> and get it from the list using + <code>string_list_lookup</code> for sorted lists. </p> </li> <li> <p> -Can sort an unsorted list using <tt>sort_string_list</tt>. +Can sort an unsorted list using <code>sort_string_list</code>. </p> </li> <li> <p> Can remove duplicate items from a sorted list using - <tt>string_list_remove_duplicates</tt>. + <code>string_list_remove_duplicates</code>. </p> </li> <li> <p> Can remove individual items of an unsorted list using - <tt>unsorted_string_list_delete_item</tt>. + <code>unsorted_string_list_delete_item</code>. </p> </li> <li> <p> Can remove items not matching a criterion from a sorted or unsorted - list using <tt>filter_string_list</tt>, or remove empty strings using - <tt>string_list_remove_empty_items</tt>. + list using <code>filter_string_list</code>, or remove empty strings using + <code>string_list_remove_empty_items</code>. </p> </li> <li> <p> -Finally it should free the list using <tt>string_list_clear</tt>. +Finally it should free the list using <code>string_list_clear</code>. </p> </li> </ol></div> <div class="paragraph"><p>Example:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>struct string_list list = STRING_LIST_INIT_NODUP; +<pre><code>struct string_list list = STRING_LIST_INIT_NODUP; int i; string_list_append(&list, "foo"); string_list_append(&list, "bar"); for (i = 0; i < list.nr; i++) - printf("%s\n", list.items[i].string)</tt></pre> + printf("%s\n", list.items[i].string)</code></pre> </div></div> <div class="admonitionblock"> <table><tr> @@ -824,8 +822,8 @@ <div class="title">Note</div> </td> <td class="content">It is more efficient to build an unsorted list and sort it -afterwards, instead of building a sorted list (<tt>O(n log n)</tt> instead of -<tt>O(n^2)</tt>).</td> +afterwards, instead of building a sorted list (<code>O(n log n)</code> instead of +<code>O(n^2)</code>).</td> </tr></table> </div> <div class="paragraph"><p>+ @@ -844,16 +842,16 @@ </p> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>string_list_init</tt> +<code>string_list_init</code> </dt> <dd> <p> - Initialize the members of the string_list, set <tt>strdup_strings</tt> + Initialize the members of the string_list, set <code>strdup_strings</code> member according to the value of the second parameter. </p> </dd> <dt class="hdlist1"> -<tt>filter_string_list</tt> +<code>filter_string_list</code> </dt> <dd> <p> @@ -865,7 +863,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>string_list_remove_empty_items</tt> +<code>string_list_remove_empty_items</code> </dt> <dd> <p> @@ -875,7 +873,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>print_string_list</tt> +<code>print_string_list</code> </dt> <dd> <p> @@ -885,13 +883,13 @@ </p> </dd> <dt class="hdlist1"> -<tt>string_list_clear</tt> +<code>string_list_clear</code> </dt> <dd> <p> - Free a string_list. The <tt>string</tt> pointer of the items will be freed in - case the <tt>strdup_strings</tt> member of the string_list is set. The second - parameter controls if the <tt>util</tt> pointer of the items should be freed + Free a string_list. The <code>string</code> pointer of the items will be freed in + case the <code>strdup_strings</code> member of the string_list is set. The second + parameter controls if the <code>util</code> pointer of the items should be freed or not. </p> </dd> @@ -903,7 +901,7 @@ </p> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>string_list_has_string</tt> +<code>string_list_has_string</code> </dt> <dd> <p> @@ -911,22 +909,22 @@ </p> </dd> <dt class="hdlist1"> -<tt>string_list_insert</tt> +<code>string_list_insert</code> </dt> <dd> <p> Insert a new element to the string_list. The returned pointer can be - handy if you want to write something to the <tt>util</tt> pointer of the + handy if you want to write something to the <code>util</code> pointer of the string_list_item containing the just added string. If the given string already exists the insertion will be skipped and the pointer to the existing item returned. </p> <div class="paragraph"><p>Since this function uses xrealloc() (which die()s if it fails) if the list needs to grow, it is safe not to check the pointer. I.e. you may -write <tt>string_list_insert(...)->util = ...;</tt>.</p></div> +write <code>string_list_insert(...)->util = ...;</code>.</p></div> </dd> <dt class="hdlist1"> -<tt>string_list_lookup</tt> +<code>string_list_lookup</code> </dt> <dd> <p> @@ -935,7 +933,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>string_list_remove_duplicates</tt> +<code>string_list_remove_duplicates</code> </dt> <dd> <p> @@ -952,86 +950,86 @@ </p> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>string_list_append</tt> +<code>string_list_append</code> </dt> <dd> <p> Append a new string to the end of the string_list. If - <tt>strdup_string</tt> is set, then the string argument is copied; - otherwise the new <tt>string_list_entry</tt> refers to the input + <code>strdup_string</code> is set, then the string argument is copied; + otherwise the new <code>string_list_entry</code> refers to the input string. </p> </dd> <dt class="hdlist1"> -<tt>string_list_append_nodup</tt> +<code>string_list_append_nodup</code> </dt> <dd> <p> Append a new string to the end of the string_list. The new - <tt>string_list_entry</tt> always refers to the input string, even if - <tt>strdup_string</tt> is set. This function can be used to hand - ownership of a malloc()ed string to a <tt>string_list</tt> that has - <tt>strdup_string</tt> set. + <code>string_list_entry</code> always refers to the input string, even if + <code>strdup_string</code> is set. This function can be used to hand + ownership of a malloc()ed string to a <code>string_list</code> that has + <code>strdup_string</code> set. </p> </dd> <dt class="hdlist1"> -<tt>sort_string_list</tt> +<code>sort_string_list</code> </dt> <dd> <p> - Sort the list’s entries by string value in <tt>strcmp()</tt> order. + Sort the list’s entries by string value in <code>strcmp()</code> order. </p> </dd> <dt class="hdlist1"> -<tt>unsorted_string_list_has_string</tt> +<code>unsorted_string_list_has_string</code> </dt> <dd> <p> - It’s like <tt>string_list_has_string()</tt> but for unsorted lists. + It’s like <code>string_list_has_string()</code> but for unsorted lists. </p> </dd> <dt class="hdlist1"> -<tt>unsorted_string_list_lookup</tt> +<code>unsorted_string_list_lookup</code> </dt> <dd> <p> - It’s like <tt>string_list_lookup()</tt> but for unsorted lists. + It’s like <code>string_list_lookup()</code> but for unsorted lists. </p> <div class="paragraph"><p>The above two functions need to look through all items, as opposed to their counterpart for sorted lists, which performs a binary search.</p></div> </dd> <dt class="hdlist1"> -<tt>unsorted_string_list_delete_item</tt> +<code>unsorted_string_list_delete_item</code> </dt> <dd> <p> - Remove an item from a string_list. The <tt>string</tt> pointer of the items - will be freed in case the <tt>strdup_strings</tt> member of the string_list - is set. The third parameter controls if the <tt>util</tt> pointer of the + Remove an item from a string_list. The <code>string</code> pointer of the items + will be freed in case the <code>strdup_strings</code> member of the string_list + is set. The third parameter controls if the <code>util</code> pointer of the items should be freed or not. </p> </dd> <dt class="hdlist1"> -<tt>string_list_split</tt> +<code>string_list_split</code> </dt> <dt class="hdlist1"> -<tt>string_list_split_in_place</tt> +<code>string_list_split_in_place</code> </dt> <dd> <p> Split a string into substrings on a delimiter character and - append the substrings to a <tt>string_list</tt>. If <tt>maxsplit</tt> is - non-negative, then split at most <tt>maxsplit</tt> times. Return the + append the substrings to a <code>string_list</code>. If <code>maxsplit</code> is + non-negative, then split at most <code>maxsplit</code> times. Return the number of substrings appended to the list. </p> -<div class="paragraph"><p><tt>string_list_split</tt> requires a <tt>string_list</tt> that has <tt>strdup_strings</tt> +<div class="paragraph"><p><code>string_list_split</code> requires a <code>string_list</code> that has <code>strdup_strings</code> set to true; it leaves the input string untouched and makes copies of the substrings in newly-allocated memory. -<tt>string_list_split_in_place</tt> requires a <tt>string_list</tt> that has -<tt>strdup_strings</tt> set to false; it splits the input string in place, +<code>string_list_split_in_place</code> requires a <code>string_list</code> that has +<code>strdup_strings</code> set to false; it splits the input string in place, overwriting the delimiter characters with NULs and creating new string_list_items that point into the original string (the original -string must therefore not be modified or freed while the <tt>string_list</tt> +string must therefore not be modified or freed while the <code>string_list</code> is in use).</p></div> </dd> </dl></div> @@ -1045,16 +1043,16 @@ <div class="ulist"><ul> <li> <p> -<tt>struct string_list_item</tt> +<code>struct string_list_item</code> </p> </li> </ul></div> -<div class="paragraph"><p>Represents an item of the list. The <tt>string</tt> member is a pointer to the -string, and you may use the <tt>util</tt> member for any purpose, if you want.</p></div> +<div class="paragraph"><p>Represents an item of the list. The <code>string</code> member is a pointer to the +string, and you may use the <code>util</code> member for any purpose, if you want.</p></div> <div class="ulist"><ul> <li> <p> -<tt>struct string_list</tt> +<code>struct string_list</code> </p> </li> </ul></div> @@ -1062,30 +1060,30 @@ <div class="olist arabic"><ol class="arabic"> <li> <p> -The array of items are available via the <tt>items</tt> member. +The array of items are available via the <code>items</code> member. </p> </li> <li> <p> -The <tt>nr</tt> member contains the number of items stored in the list. +The <code>nr</code> member contains the number of items stored in the list. </p> </li> <li> <p> -The <tt>alloc</tt> member is used to avoid reallocating at every insertion. +The <code>alloc</code> member is used to avoid reallocating at every insertion. You should not tamper with it. </p> </li> <li> <p> -Setting the <tt>strdup_strings</tt> member to 1 will strdup() the strings +Setting the <code>strdup_strings</code> member to 1 will strdup() the strings before adding them, see above. </p> </li> <li> <p> -The <tt>compare_strings_fn</tt> member is used to specify a custom compare - function, otherwise <tt>strcmp()</tt> is used as the default function. +The <code>compare_strings_fn</code> member is used to specify a custom compare + function, otherwise <code>strcmp()</code> is used as the default function. </p> </li> </ol></div>
diff --git a/technical/api-trace.html b/technical/api-trace.html index ae05a60..966277c 100644 --- a/technical/api-trace.html +++ b/technical/api-trace.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>trace API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -741,14 +739,14 @@ <div id="preamble"> <div class="sectionbody"> <div class="paragraph"><p>The trace API can be used to print debug messages to stderr or a file. Trace -code is inactive unless explicitly enabled by setting <tt>GIT_TRACE*</tt> environment +code is inactive unless explicitly enabled by setting <code>GIT_TRACE*</code> environment variables.</p></div> -<div class="paragraph"><p>The trace implementation automatically adds <tt>timestamp file:line ... \n</tt> to +<div class="paragraph"><p>The trace implementation automatically adds <code>timestamp file:line ... \n</code> to all trace messages. E.g.:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>23:59:59.123456 git.c:312 trace: built-in: git 'foo' -00:00:00.000001 builtin/foo.c:99 foo: some message</tt></pre> +<pre><code>23:59:59.123456 git.c:312 trace: built-in: git 'foo' +00:00:00.000001 builtin/foo.c:99 foo: some message</code></pre> </div></div> </div> </div> @@ -757,25 +755,25 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>struct trace_key</tt> +<code>struct trace_key</code> </dt> <dd> <p> Defines a trace key (or category). The default (for API functions that - don’t take a key) is <tt>GIT_TRACE</tt>. + don’t take a key) is <code>GIT_TRACE</code>. </p> -<div class="paragraph"><p>E.g. to define a trace key controlled by environment variable <tt>GIT_TRACE_FOO</tt>:</p></div> +<div class="paragraph"><p>E.g. to define a trace key controlled by environment variable <code>GIT_TRACE_FOO</code>:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt>static struct trace_key trace_foo = TRACE_KEY_INIT(FOO); +<pre><code>static struct trace_key trace_foo = TRACE_KEY_INIT(FOO); static void trace_print_foo(const char *message) { trace_print_key(&trace_foo, message); -}</tt></pre> +}</code></pre> </div></div> -<div class="paragraph"><p>Note: don’t use <tt>const</tt> as the trace implementation stores internal state in -the <tt>trace_key</tt> structure.</p></div> +<div class="paragraph"><p>Note: don’t use <code>const</code> as the trace implementation stores internal state in +the <code>trace_key</code> structure.</p></div> </dd> </dl></div> </div> @@ -785,7 +783,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>int trace_want(struct trace_key *key)</tt> +<code>int trace_want(struct trace_key *key)</code> </dt> <dd> <p> @@ -794,7 +792,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>void trace_disable(struct trace_key *key)</tt> +<code>void trace_disable(struct trace_key *key)</code> </dt> <dd> <p> @@ -803,10 +801,10 @@ </p> </dd> <dt class="hdlist1"> -<tt>void trace_printf(const char *format, ...)</tt> +<code>void trace_printf(const char *format, ...)</code> </dt> <dt class="hdlist1"> -<tt>void trace_printf_key(struct trace_key *key, const char *format, ...)</tt> +<code>void trace_printf_key(struct trace_key *key, const char *format, ...)</code> </dt> <dd> <p> @@ -814,7 +812,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>void trace_argv_printf(const char **argv, const char *format, ...)`</tt> +<code>void trace_argv_printf(const char **argv, const char *format, ...)`</code> </dt> <dd> <p> @@ -822,16 +820,16 @@ </p> </dd> <dt class="hdlist1"> -<tt>void trace_strbuf(struct trace_key *key, const struct strbuf *data)</tt> +<code>void trace_strbuf(struct trace_key *key, const struct strbuf *data)</code> </dt> <dd> <p> Prints the strbuf, without additional formatting (i.e. doesn’t - choke on <tt>%</tt> or even <tt>\0</tt>). + choke on <code>%</code> or even <code>\0</code>). </p> </dd> <dt class="hdlist1"> -<tt>uint64_t getnanotime(void)</tt> +<code>uint64_t getnanotime(void)</code> </dt> <dd> <p> @@ -839,30 +837,30 @@ for performance measurements. </p> <div class="paragraph"><p>Currently there are high precision timer implementations for Linux (using -<tt>clock_gettime(CLOCK_MONOTONIC)</tt>) and Windows (<tt>QueryPerformanceCounter</tt>). -Other platforms use <tt>gettimeofday</tt> as time source.</p></div> +<code>clock_gettime(CLOCK_MONOTONIC)</code>) and Windows (<code>QueryPerformanceCounter</code>). +Other platforms use <code>gettimeofday</code> as time source.</p></div> </dd> <dt class="hdlist1"> -<tt>void trace_performance(uint64_t nanos, const char *format, ...)</tt> +<code>void trace_performance(uint64_t nanos, const char *format, ...)</code> </dt> <dt class="hdlist1"> -<tt>void trace_performance_since(uint64_t start, const char *format, ...)</tt> +<code>void trace_performance_since(uint64_t start, const char *format, ...)</code> </dt> <dd> <p> Prints the elapsed time (in nanoseconds), or elapsed time since - <tt>start</tt>, followed by a formatted message. Enabled via environment - variable <tt>GIT_TRACE_PERFORMANCE</tt>. Used for manual profiling, e.g.: + <code>start</code>, followed by a formatted message. Enabled via environment + variable <code>GIT_TRACE_PERFORMANCE</code>. Used for manual profiling, e.g.: </p> <div class="listingblock"> <div class="content"> -<pre><tt>uint64_t start = getnanotime(); +<pre><code>uint64_t start = getnanotime(); /* code section to measure */ -trace_performance_since(start, "foobar");</tt></pre> +trace_performance_since(start, "foobar");</code></pre> </div></div> <div class="listingblock"> <div class="content"> -<pre><tt>uint64_t t = 0; +<pre><code>uint64_t t = 0; for (;;) { /* ignore */ t -= getnanotime(); @@ -870,7 +868,7 @@ t += getnanotime(); /* ignore */ } -trace_performance(t, "frotz");</tt></pre> +trace_performance(t, "frotz");</code></pre> </div></div> </dd> </dl></div>
diff --git a/technical/api-tree-walking.html b/technical/api-tree-walking.html index 0e9d56d..2ddd698 100644 --- a/technical/api-tree-walking.html +++ b/technical/api-tree-walking.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>tree walking API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -748,7 +746,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>struct name_entry</tt> +<code>struct name_entry</code> </dt> <dd> <p> @@ -757,7 +755,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>struct tree_desc</tt> +<code>struct tree_desc</code> </dt> <dd> <p> @@ -767,24 +765,24 @@ <div class="ulist"><ul> <li> <p> -<tt>buffer</tt> is a pointer into the memory representation of the tree. It always +<code>buffer</code> is a pointer into the memory representation of the tree. It always points at the current entry being visited. </p> </li> <li> <p> -<tt>size</tt> counts the number of bytes left in the <tt>buffer</tt>. +<code>size</code> counts the number of bytes left in the <code>buffer</code>. </p> </li> <li> <p> -<tt>entry</tt> points to the current entry being visited. +<code>entry</code> points to the current entry being visited. </p> </li> </ul></div> </dd> <dt class="hdlist1"> -<tt>struct traverse_info</tt> +<code>struct traverse_info</code> </dt> <dd> <p> @@ -793,40 +791,40 @@ <div class="ulist"><ul> <li> <p> -<tt>prev</tt> points to the traverse_info which was used to descend into the -current tree. If this is the top-level tree <tt>prev</tt> will point to +<code>prev</code> points to the traverse_info which was used to descend into the +current tree. If this is the top-level tree <code>prev</code> will point to a dummy traverse_info. </p> </li> <li> <p> -<tt>name</tt> is the entry for the current tree (if the tree is a subtree). +<code>name</code> is the entry for the current tree (if the tree is a subtree). </p> </li> <li> <p> -<tt>pathlen</tt> is the length of the full path for the current tree. +<code>pathlen</code> is the length of the full path for the current tree. </p> </li> <li> <p> -<tt>conflicts</tt> can be used by callbacks to maintain directory-file conflicts. +<code>conflicts</code> can be used by callbacks to maintain directory-file conflicts. </p> </li> <li> <p> -<tt>fn</tt> is a callback called for each entry in the tree. See Traversing for more +<code>fn</code> is a callback called for each entry in the tree. See Traversing for more information. </p> </li> <li> <p> -<tt>data</tt> can be anything the <tt>fn</tt> callback would want to use. +<code>data</code> can be anything the <code>fn</code> callback would want to use. </p> </li> <li> <p> -<tt>show_all_errors</tt> tells whether to stop at the first error or not. +<code>show_all_errors</code> tells whether to stop at the first error or not. </p> </li> </ul></div> @@ -839,33 +837,33 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>init_tree_desc</tt> +<code>init_tree_desc</code> </dt> <dd> <p> - Initialize a <tt>tree_desc</tt> and decode its first entry. The buffer and + Initialize a <code>tree_desc</code> and decode its first entry. The buffer and size parameters are assumed to be the same as the buffer and size - members of <tt>struct tree</tt>. + members of <code>struct tree</code>. </p> </dd> <dt class="hdlist1"> -<tt>fill_tree_descriptor</tt> +<code>fill_tree_descriptor</code> </dt> <dd> <p> - Initialize a <tt>tree_desc</tt> and decode its first entry given the sha1 of - a tree. Returns the <tt>buffer</tt> member if the sha1 is a valid tree + Initialize a <code>tree_desc</code> and decode its first entry given the sha1 of + a tree. Returns the <code>buffer</code> member if the sha1 is a valid tree identifier and NULL otherwise. </p> </dd> <dt class="hdlist1"> -<tt>setup_traverse_info</tt> +<code>setup_traverse_info</code> </dt> <dd> <p> - Initialize a <tt>traverse_info</tt> given the pathname of the tree to start - traversing from. The <tt>base</tt> argument is assumed to be the <tt>path</tt> - member of the <tt>name_entry</tt> being recursed into unless the tree is a + Initialize a <code>traverse_info</code> given the pathname of the tree to start + traversing from. The <code>base</code> argument is assumed to be the <code>path</code> + member of the <code>name_entry</code> being recursed into unless the tree is a top-level tree in which case the empty string ("") is used. </p> </dd> @@ -877,7 +875,7 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>tree_entry</tt> +<code>tree_entry</code> </dt> <dd> <p> @@ -887,7 +885,7 @@ </p> </dd> <dt class="hdlist1"> -<tt>tree_entry_len</tt> +<code>tree_entry_len</code> </dt> <dd> <p> @@ -897,27 +895,27 @@ </p> </dd> <dt class="hdlist1"> -<tt>update_tree_entry</tt> +<code>update_tree_entry</code> </dt> <dd> <p> Walk to the next entry in a tree. This is commonly used in conjunction - with <tt>tree_entry_extract</tt> to inspect the current entry. + with <code>tree_entry_extract</code> to inspect the current entry. </p> </dd> <dt class="hdlist1"> -<tt>tree_entry_extract</tt> +<code>tree_entry_extract</code> </dt> <dd> <p> Decode the entry currently being visited (the one pointed to by - <tt>tree_desc's</tt> <tt>entry</tt> member) and return the sha1 of the entry. The - <tt>pathp</tt> and <tt>modep</tt> arguments are set to the entry’s pathname and mode + <code>tree_desc's</code> <code>entry</code> member) and return the sha1 of the entry. The + <code>pathp</code> and <code>modep</code> arguments are set to the entry’s pathname and mode respectively. </p> </dd> <dt class="hdlist1"> -<tt>get_tree_entry</tt> +<code>get_tree_entry</code> </dt> <dd> <p> @@ -935,16 +933,16 @@ <div class="sectionbody"> <div class="dlist"><dl> <dt class="hdlist1"> -<tt>traverse_trees</tt> +<code>traverse_trees</code> </dt> <dd> <p> - Traverse <tt>n</tt> number of trees in parallel. The <tt>fn</tt> callback member of - <tt>traverse_info</tt> is called once for each tree entry. + Traverse <code>n</code> number of trees in parallel. The <code>fn</code> callback member of + <code>traverse_info</code> is called once for each tree entry. </p> </dd> <dt class="hdlist1"> -<tt>traverse_callback_t</tt> +<code>traverse_callback_t</code> </dt> <dd> <p> @@ -953,27 +951,27 @@ <div class="ulist"><ul> <li> <p> -<tt>n</tt> counts the number of trees being traversed. +<code>n</code> counts the number of trees being traversed. </p> </li> <li> <p> -<tt>mask</tt> has its nth bit set if something exists in the nth entry. +<code>mask</code> has its nth bit set if something exists in the nth entry. </p> </li> <li> <p> -<tt>dirmask</tt> has its nth bit set if the nth tree’s entry is a directory. +<code>dirmask</code> has its nth bit set if the nth tree’s entry is a directory. </p> </li> <li> <p> -<tt>entry</tt> is an array of size <tt>n</tt> where the nth entry is from the nth tree. +<code>entry</code> is an array of size <code>n</code> where the nth entry is from the nth tree. </p> </li> <li> <p> -<tt>info</tt> maintains the state of the traversal. +<code>info</code> maintains the state of the traversal. </p> </li> </ul></div> @@ -983,7 +981,7 @@ same in the next callback invocation.</p></div> </dd> <dt class="hdlist1"> -<tt>make_traverse_path</tt> +<code>make_traverse_path</code> </dt> <dd> <p> @@ -994,11 +992,11 @@ </p> </dd> <dt class="hdlist1"> -<tt>traverse_path_len</tt> +<code>traverse_path_len</code> </dt> <dd> <p> - Calculate the length of a pathname returned by <tt>make_traverse_path</tt>. + Calculate the length of a pathname returned by <code>make_traverse_path</code>. This utilizes the memory structure of a tree entry to avoid the overhead of using a generic strlen(). </p>
diff --git a/technical/api-xdiff-interface.html b/technical/api-xdiff-interface.html index 8be169b..c95cb1b 100644 --- a/technical/api-xdiff-interface.html +++ b/technical/api-xdiff-interface.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>xdiff interface API</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/technical/http-protocol.html b/technical/http-protocol.html index 1a0a383..2865ede 100644 --- a/technical/http-protocol.html +++ b/technical/http-protocol.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>HTTP transfer protocols</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -757,36 +755,36 @@ URL syntax documented by RFC 1738, so they are of the form:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>http://<host>:<port>/<path>?<searchpart></tt></pre> +<pre><code>http://<host>:<port>/<path>?<searchpart></code></pre> </div></div> -<div class="paragraph"><p>Within this documentation the placeholder <tt>$GIT_URL</tt> will stand for +<div class="paragraph"><p>Within this documentation the placeholder <code>$GIT_URL</code> will stand for the http:// repository URL entered by the end-user.</p></div> -<div class="paragraph"><p>Servers SHOULD handle all requests to locations matching <tt>$GIT_URL</tt>, as +<div class="paragraph"><p>Servers SHOULD handle all requests to locations matching <code>$GIT_URL</code>, as both the "smart" and "dumb" HTTP protocols used by Git operate by appending additional path components onto the end of the user -supplied <tt>$GIT_URL</tt> string.</p></div> +supplied <code>$GIT_URL</code> string.</p></div> <div class="paragraph"><p>An example of a dumb client requesting for a loose object:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$GIT_URL: http://example.com:8080/git/repo.git -URL request: http://example.com:8080/git/repo.git/objects/d0/49f6c27a2244e12041955e262a404c7faba355</tt></pre> +<pre><code>$GIT_URL: http://example.com:8080/git/repo.git +URL request: http://example.com:8080/git/repo.git/objects/d0/49f6c27a2244e12041955e262a404c7faba355</code></pre> </div></div> <div class="paragraph"><p>An example of a smart request to a catch-all gateway:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$GIT_URL: http://example.com/daemon.cgi?svc=git&q= -URL request: http://example.com/daemon.cgi?svc=git&q=/info/refs&service=git-receive-pack</tt></pre> +<pre><code>$GIT_URL: http://example.com/daemon.cgi?svc=git&q= +URL request: http://example.com/daemon.cgi?svc=git&q=/info/refs&service=git-receive-pack</code></pre> </div></div> <div class="paragraph"><p>An example of a request to a submodule:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$GIT_URL: http://example.com/git/repo.git/path/submodule.git -URL request: http://example.com/git/repo.git/path/submodule.git/info/refs</tt></pre> +<pre><code>$GIT_URL: http://example.com/git/repo.git/path/submodule.git +URL request: http://example.com/git/repo.git/path/submodule.git/info/refs</code></pre> </div></div> -<div class="paragraph"><p>Clients MUST strip a trailing <tt>/</tt>, if present, from the user supplied -<tt>$GIT_URL</tt> string to prevent empty path tokens (<tt>//</tt>) from appearing +<div class="paragraph"><p>Clients MUST strip a trailing <code>/</code>, if present, from the user supplied +<code>$GIT_URL</code> string to prevent empty path tokens (<code>//</code>) from appearing in any URL sent to a server. Compatible clients MUST expand -<tt>$GIT_URL/info/refs</tt> as <tt>foo/info/refs</tt> and not <tt>foo//info/refs</tt>.</p></div> +<code>$GIT_URL/info/refs</code> as <code>foo/info/refs</code> and not <code>foo//info/refs</code>.</p></div> </div> </div> <div class="sect1"> @@ -836,13 +834,13 @@ <div class="paragraph"><p>Except where noted, all standard HTTP behavior SHOULD be assumed by both client and server. This includes (but is not necessarily limited to):</p></div> -<div class="paragraph"><p>If there is no repository at <tt>$GIT_URL</tt>, or the resource pointed to by a -location matching <tt>$GIT_URL</tt> does not exist, the server MUST NOT respond -with <tt>200 OK</tt> response. A server SHOULD respond with -<tt>404 Not Found</tt>, <tt>410 Gone</tt>, or any other suitable HTTP status code +<div class="paragraph"><p>If there is no repository at <code>$GIT_URL</code>, or the resource pointed to by a +location matching <code>$GIT_URL</code> does not exist, the server MUST NOT respond +with <code>200 OK</code> response. A server SHOULD respond with +<code>404 Not Found</code>, <code>410 Gone</code>, or any other suitable HTTP status code which does not imply the resource exists as requested.</p></div> -<div class="paragraph"><p>If there is a repository at <tt>$GIT_URL</tt>, but access is not currently -permitted, the server MUST respond with the <tt>403 Forbidden</tt> HTTP +<div class="paragraph"><p>If there is a repository at <code>$GIT_URL</code>, but access is not currently +permitted, the server MUST respond with the <code>403 Forbidden</code> HTTP status code.</p></div> <div class="paragraph"><p>Servers SHOULD support both HTTP 1.0 and HTTP 1.1. Servers SHOULD support chunked encoding for both request and response @@ -853,9 +851,9 @@ <div class="paragraph"><p>Servers MAY return ETag and/or Last-Modified headers.</p></div> <div class="paragraph"><p>Clients MAY revalidate cached entities by including If-Modified-Since and/or If-None-Match request headers.</p></div> -<div class="paragraph"><p>Servers MAY return <tt>304 Not Modified</tt> if the relevant headers appear +<div class="paragraph"><p>Servers MAY return <code>304 Not Modified</code> if the relevant headers appear in the request and the entity has not changed. Clients MUST treat -<tt>304 Not Modified</tt> identical to <tt>200 OK</tt> by reusing the cached entity.</p></div> +<code>304 Not Modified</code> identical to <code>200 OK</code> by reusing the cached entity.</p></div> <div class="paragraph"><p>Clients MAY reuse a cached entity without revalidation if the Cache-Control and/or Expires header permits caching. Clients and servers MUST follow RFC 2616 for cache controls.</p></div> @@ -871,44 +869,44 @@ <div class="paragraph"><p>HTTP clients that only support the "dumb" protocol MUST discover references by making a request for the special info/refs file of the repository.</p></div> -<div class="paragraph"><p>Dumb HTTP clients MUST make a <tt>GET</tt> request to <tt>$GIT_URL/info/refs</tt>, +<div class="paragraph"><p>Dumb HTTP clients MUST make a <code>GET</code> request to <code>$GIT_URL/info/refs</code>, without any search/query parameters.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>C: GET $GIT_URL/info/refs HTTP/1.0</tt></pre> +<pre><code>C: GET $GIT_URL/info/refs HTTP/1.0</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>S: 200 OK +<pre><code>S: 200 OK S: S: 95dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint S: d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master S: 2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0 -S: a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}</tt></pre> +S: a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}</code></pre> </div></div> <div class="paragraph"><p>The Content-Type of the returned info/refs entity SHOULD be -<tt>text/plain; charset=utf-8</tt>, but MAY be any content type. +<code>text/plain; charset=utf-8</code>, but MAY be any content type. Clients MUST NOT attempt to validate the returned Content-Type. Dumb servers MUST NOT return a return type starting with -<tt>application/x-git-</tt>.</p></div> +<code>application/x-git-</code>.</p></div> <div class="paragraph"><p>Cache-Control headers MAY be returned to disable caching of the returned entity.</p></div> <div class="paragraph"><p>When examining the response clients SHOULD only examine the HTTP -status code. Valid responses are <tt>200 OK</tt>, or <tt>304 Not Modified</tt>.</p></div> +status code. Valid responses are <code>200 OK</code>, or <code>304 Not Modified</code>.</p></div> <div class="paragraph"><p>The returned content is a UNIX formatted text file describing each ref and its known value. The file SHOULD be sorted by name according to the C locale ordering. The file SHOULD NOT include -the default ref named <tt>HEAD</tt>.</p></div> +the default ref named <code>HEAD</code>.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>info_refs = *( ref_record ) -ref_record = any_ref / peeled_ref</tt></pre> +<pre><code>info_refs = *( ref_record ) +ref_record = any_ref / peeled_ref</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>any_ref = obj-id HTAB refname LF +<pre><code>any_ref = obj-id HTAB refname LF peeled_ref = obj-id HTAB refname LF - obj-id HTAB refname "^{}" LF</tt></pre> + obj-id HTAB refname "^{}" LF</code></pre> </div></div> </div> <div class="sect2"> @@ -917,27 +915,27 @@ "smart" and "dumb" protocols) MUST discover references by making a parameterized request for the info/refs file of the repository.</p></div> <div class="paragraph"><p>The request MUST contain exactly one query parameter, -<tt>service=$servicename</tt>, where <tt>$servicename</tt> MUST be the service +<code>service=$servicename</code>, where <code>$servicename</code> MUST be the service name the client wishes to contact to complete the operation. The request MUST NOT contain additional query parameters.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>C: GET $GIT_URL/info/refs?service=git-upload-pack HTTP/1.0</tt></pre> +<pre><code>C: GET $GIT_URL/info/refs?service=git-upload-pack HTTP/1.0</code></pre> </div></div> <div class="paragraph"><p>dumb server reply:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>S: 200 OK +<pre><code>S: 200 OK S: S: 95dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint S: d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master S: 2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0 -S: a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}</tt></pre> +S: a3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}</code></pre> </div></div> <div class="paragraph"><p>smart server reply:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>S: 200 OK +<pre><code>S: 200 OK S: Content-Type: application/x-git-upload-pack-advertisement S: Cache-Control: no-cache S: @@ -945,7 +943,7 @@ S: 004895dcfa3633004da0049d3d0fa03f80589cbcaf31 refs/heads/maint\0multi_ack\n S: 0042d049f6c27a2244e12041955e262a404c7faba355 refs/heads/master\n S: 003c2cb58b79488a98d2721cea644875a8dd0026b115 refs/tags/v1.0\n -S: 003fa3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}\n</tt></pre> +S: 003fa3c2e2402b99163d1d59756e5f207ae21cccba4c refs/tags/v1.0^{}\n</code></pre> </div></div> <div class="sect3"> <h4 id="_dumb_server_response">Dumb Server Response</h4> @@ -957,63 +955,63 @@ <h4 id="_smart_server_response">Smart Server Response</h4> <div class="paragraph"><p>If the server does not recognize the requested service name, or the requested service name has been disabled by the server administrator, -the server MUST respond with the <tt>403 Forbidden</tt> HTTP status code.</p></div> +the server MUST respond with the <code>403 Forbidden</code> HTTP status code.</p></div> <div class="paragraph"><p>Otherwise, smart servers MUST respond with the smart server reply format for the requested service name.</p></div> <div class="paragraph"><p>Cache-Control headers SHOULD be used to disable caching of the returned entity.</p></div> -<div class="paragraph"><p>The Content-Type MUST be <tt>application/x-$servicename-advertisement</tt>. +<div class="paragraph"><p>The Content-Type MUST be <code>application/x-$servicename-advertisement</code>. Clients SHOULD fall back to the dumb protocol if another content type is returned. When falling back to the dumb protocol clients -SHOULD NOT make an additional request to <tt>$GIT_URL/info/refs</tt>, but +SHOULD NOT make an additional request to <code>$GIT_URL/info/refs</code>, but instead SHOULD use the response already in hand. Clients MUST NOT continue if they do not support the dumb protocol.</p></div> -<div class="paragraph"><p>Clients MUST validate the status code is either <tt>200 OK</tt> or -<tt>304 Not Modified</tt>.</p></div> +<div class="paragraph"><p>Clients MUST validate the status code is either <code>200 OK</code> or +<code>304 Not Modified</code>.</p></div> <div class="paragraph"><p>Clients MUST validate the first five bytes of the response entity -matches the regex <tt>^[0-9a-f]{4}#</tt>. If this test fails, clients +matches the regex <code>^[0-9a-f]{4}#</code>. If this test fails, clients MUST NOT continue.</p></div> <div class="paragraph"><p>Clients MUST parse the entire response as a sequence of pkt-line records.</p></div> -<div class="paragraph"><p>Clients MUST verify the first pkt-line is <tt># service=$servicename</tt>. +<div class="paragraph"><p>Clients MUST verify the first pkt-line is <code># service=$servicename</code>. Servers MUST set $servicename to be the request parameter value. Servers SHOULD include an LF at the end of this line. Clients MUST ignore an LF at the end of the line.</p></div> -<div class="paragraph"><p>Servers MUST terminate the response with the magic <tt>0000</tt> end +<div class="paragraph"><p>Servers MUST terminate the response with the magic <code>0000</code> end pkt-line marker.</p></div> <div class="paragraph"><p>The returned response is a pkt-line stream describing each ref and its known value. The stream SHOULD be sorted by name according to the C locale ordering. The stream SHOULD include the default ref -named <tt>HEAD</tt> as the first ref. The stream MUST include capability +named <code>HEAD</code> as the first ref. The stream MUST include capability declarations behind a NUL on the first ref.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>smart_reply = PKT-LINE("# service=$servicename" LF) +<pre><code>smart_reply = PKT-LINE("# service=$servicename" LF) ref_list "0000" -ref_list = empty_list / non_empty_list</tt></pre> +ref_list = empty_list / non_empty_list</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>empty_list = PKT-LINE(zero-id SP "capabilities^{}" NUL cap-list LF)</tt></pre> +<pre><code>empty_list = PKT-LINE(zero-id SP "capabilities^{}" NUL cap-list LF)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>non_empty_list = PKT-LINE(obj-id SP name NUL cap_list LF) - *ref_record</tt></pre> +<pre><code>non_empty_list = PKT-LINE(obj-id SP name NUL cap_list LF) + *ref_record</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>cap-list = capability *(SP capability) +<pre><code>cap-list = capability *(SP capability) capability = 1*(LC_ALPHA / DIGIT / "-" / "_") -LC_ALPHA = %x61-7A</tt></pre> +LC_ALPHA = %x61-7A</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>ref_record = any_ref / peeled_ref +<pre><code>ref_record = any_ref / peeled_ref any_ref = PKT-LINE(obj-id SP name LF) peeled_ref = PKT-LINE(obj-id SP name LF) - PKT-LINE(obj-id SP name "^{}" LF</tt></pre> + PKT-LINE(obj-id SP name "^{}" LF</code></pre> </div></div> </div> </div> @@ -1022,26 +1020,26 @@ <div class="sect1"> <h2 id="_smart_service_git_upload_pack">Smart Service git-upload-pack</h2> <div class="sectionbody"> -<div class="paragraph"><p>This service reads from the repository pointed to by <tt>$GIT_URL</tt>.</p></div> +<div class="paragraph"><p>This service reads from the repository pointed to by <code>$GIT_URL</code>.</p></div> <div class="paragraph"><p>Clients MUST first perform ref discovery with -<tt>$GIT_URL/info/refs?service=git-upload-pack</tt>.</p></div> +<code>$GIT_URL/info/refs?service=git-upload-pack</code>.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>C: POST $GIT_URL/git-upload-pack HTTP/1.0 +<pre><code>C: POST $GIT_URL/git-upload-pack HTTP/1.0 C: Content-Type: application/x-git-upload-pack-request C: C: 0032want 0a53e9ddeaddad63ad106860237bbf53411d11a7\n C: 0032have 441b40d833fdfa93eb2908e52742248faf0ee993\n -C: 0000</tt></pre> +C: 0000</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>S: 200 OK +<pre><code>S: 200 OK S: Content-Type: application/x-git-upload-pack-result S: Cache-Control: no-cache S: S: ....ACK %s, continue -S: ....NAK</tt></pre> +S: ....NAK</code></pre> </div></div> <div class="paragraph"><p>Clients MUST NOT reuse or revalidate a cached response. Servers MUST include sufficient Cache-Control headers @@ -1050,25 +1048,25 @@ <div class="paragraph"><p>Clients MUST send at least one "want" command in the request body. Clients MUST NOT reference an id in a "want" command which did not appear in the response obtained through ref discovery unless the -server advertises capability <tt>allow-tip-sha1-in-want</tt>.</p></div> +server advertises capability <code>allow-tip-sha1-in-want</code>.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>compute_request = want_list +<pre><code>compute_request = want_list have_list request_end -request_end = "0000" / "done"</tt></pre> +request_end = "0000" / "done"</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>want_list = PKT-LINE(want NUL cap_list LF) +<pre><code>want_list = PKT-LINE(want NUL cap_list LF) *(want_pkt) want_pkt = PKT-LINE(want LF) want = "want" SP id -cap_list = *(SP capability) SP</tt></pre> +cap_list = *(SP capability) SP</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>have_list = *PKT-LINE("have" SP id LF)</tt></pre> +<pre><code>have_list = *PKT-LINE("have" SP id LF)</code></pre> </div></div> <div class="paragraph"><p>TODO: Document this further.</p></div> <div class="sect2"> @@ -1077,20 +1075,20 @@ (C = client, S = server):</p></div> <div class="paragraph"><p><em>init step:</em></p></div> <div class="paragraph"><p>C: Use ref discovery to obtain the advertised refs.</p></div> -<div class="paragraph"><p>C: Place any object seen into set <tt>advertised</tt>.</p></div> -<div class="paragraph"><p>C: Build an empty set, <tt>common</tt>, to hold the objects that are later +<div class="paragraph"><p>C: Place any object seen into set <code>advertised</code>.</p></div> +<div class="paragraph"><p>C: Build an empty set, <code>common</code>, to hold the objects that are later determined to be on both ends.</p></div> -<div class="paragraph"><p>C: Build a set, <tt>want</tt>, of the objects from <tt>advertised</tt> the client +<div class="paragraph"><p>C: Build a set, <code>want</code>, of the objects from <code>advertised</code> the client wants to fetch, based on what it saw during ref discovery.</p></div> -<div class="paragraph"><p>C: Start a queue, <tt>c_pending</tt>, ordered by commit time (popping newest +<div class="paragraph"><p>C: Start a queue, <code>c_pending</code>, ordered by commit time (popping newest first). Add all client refs. When a commit is popped from the queue its parents SHOULD be automatically inserted back. Commits MUST only enter the queue once.</p></div> <div class="paragraph"><p><em>one compute step:</em></p></div> -<div class="paragraph"><p>C: Send one <tt>$GIT_URL/git-upload-pack</tt> request:</p></div> +<div class="paragraph"><p>C: Send one <code>$GIT_URL/git-upload-pack</code> request:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>C: 0032want <want #1>............................... +<pre><code>C: 0032want <want #1>............................... C: 0032want <want #2>............................... .... C: 0032have <common #1>............................. @@ -1099,7 +1097,7 @@ C: 0032have <have #1>............................... C: 0032have <have #2>............................... .... -C: 0000</tt></pre> +C: 0000</code></pre> </div></div> <div class="paragraph"><p>The stream is organized into "commands", with each command appearing by itself in a pkt-line. Within a command line, @@ -1121,41 +1119,41 @@ </p> </li> </ul></div> -<div class="paragraph"><p>The stream is terminated by a pkt-line flush (<tt>0000</tt>).</p></div> +<div class="paragraph"><p>The stream is terminated by a pkt-line flush (<code>0000</code>).</p></div> <div class="paragraph"><p>A single "want" or "have" command MUST have one hex formatted SHA-1 as its value. Multiple SHA-1s MUST be sent by sending multiple commands.</p></div> -<div class="paragraph"><p>The <tt>have</tt> list is created by popping the first 32 commits -from <tt>c_pending</tt>. Less can be supplied if <tt>c_pending</tt> empties.</p></div> +<div class="paragraph"><p>The <code>have</code> list is created by popping the first 32 commits +from <code>c_pending</code>. Less can be supplied if <code>c_pending</code> empties.</p></div> <div class="paragraph"><p>If the client has sent 256 "have" commits and has not yet -received one of those back from <tt>s_common</tt>, or the client has -emptied <tt>c_pending</tt> it SHOULD include a "done" command to let +received one of those back from <code>s_common</code>, or the client has +emptied <code>c_pending</code> it SHOULD include a "done" command to let the server know it won’t proceed:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>C: 0009done</tt></pre> +<pre><code>C: 0009done</code></pre> </div></div> <div class="paragraph"><p>S: Parse the git-upload-pack request:</p></div> -<div class="paragraph"><p>Verify all objects in <tt>want</tt> are directly reachable from refs.</p></div> +<div class="paragraph"><p>Verify all objects in <code>want</code> are directly reachable from refs.</p></div> <div class="paragraph"><p>The server MAY walk backwards through history or through the reflog to permit slightly stale requests.</p></div> <div class="paragraph"><p>If no "want" objects are received, send an error: TODO: Define error if no "want" lines are requested.</p></div> <div class="paragraph"><p>If any "want" object is not reachable, send an error: TODO: Define error if an invalid "want" is requested.</p></div> -<div class="paragraph"><p>Create an empty list, <tt>s_common</tt>.</p></div> +<div class="paragraph"><p>Create an empty list, <code>s_common</code>.</p></div> <div class="paragraph"><p>If "have" was sent:</p></div> <div class="paragraph"><p>Loop through the objects in the order supplied by the client.</p></div> <div class="paragraph"><p>For each object, if the server has the object reachable from -a ref, add it to <tt>s_common</tt>. If a commit is added to <tt>s_common</tt>, -do not add any ancestors, even if they also appear in <tt>have</tt>.</p></div> +a ref, add it to <code>s_common</code>. If a commit is added to <code>s_common</code>, +do not add any ancestors, even if they also appear in <code>have</code>.</p></div> <div class="paragraph"><p>S: Send the git-upload-pack response:</p></div> <div class="paragraph"><p>If the server has found a closed set of objects to pack or the request ends with "done", it replies with the pack. TODO: Document the pack based response</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>S: PACK...</tt></pre> +<pre><code>S: PACK...</code></pre> </div></div> <div class="paragraph"><p>The returned stream is the side-band-64k protocol supported by the git-upload-pack service, and the pack is embedded into @@ -1175,25 +1173,25 @@ <div class="sect1"> <h2 id="_smart_service_git_receive_pack">Smart Service git-receive-pack</h2> <div class="sectionbody"> -<div class="paragraph"><p>This service reads from the repository pointed to by <tt>$GIT_URL</tt>.</p></div> +<div class="paragraph"><p>This service reads from the repository pointed to by <code>$GIT_URL</code>.</p></div> <div class="paragraph"><p>Clients MUST first perform ref discovery with -<tt>$GIT_URL/info/refs?service=git-receive-pack</tt>.</p></div> +<code>$GIT_URL/info/refs?service=git-receive-pack</code>.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>C: POST $GIT_URL/git-receive-pack HTTP/1.0 +<pre><code>C: POST $GIT_URL/git-receive-pack HTTP/1.0 C: Content-Type: application/x-git-receive-pack-request C: C: ....0a53e9ddeaddad63ad106860237bbf53411d11a7 441b40d833fdfa93eb2908e52742248faf0ee993 refs/heads/maint\0 report-status C: 0000 -C: PACK....</tt></pre> +C: PACK....</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>S: 200 OK +<pre><code>S: 200 OK S: Content-Type: application/x-git-receive-pack-result S: Cache-Control: no-cache S: -S: ....</tt></pre> +S: ....</code></pre> </div></div> <div class="paragraph"><p>Clients MUST NOT reuse or revalidate a cached response. Servers MUST include sufficient Cache-Control headers @@ -1204,22 +1202,22 @@ the id obtained through ref discovery as old_id.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>update_request = command_list - "PACK" <binary data></tt></pre> +<pre><code>update_request = command_list + "PACK" <binary data></code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>command_list = PKT-LINE(command NUL cap_list LF) +<pre><code>command_list = PKT-LINE(command NUL cap_list LF) *(command_pkt) command_pkt = PKT-LINE(command LF) -cap_list = *(SP capability) SP</tt></pre> +cap_list = *(SP capability) SP</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>command = create / delete / update +<pre><code>command = create / delete / update create = zero-id SP new_id SP name delete = old_id SP zero-id SP name -update = old_id SP new_id SP name</tt></pre> +update = old_id SP new_id SP name</code></pre> </div></div> <div class="paragraph"><p>TODO: Document this further.</p></div> </div>
diff --git a/technical/index-format.html b/technical/index-format.html index 8a8f192..27974b9 100644 --- a/technical/index-format.html +++ b/technical/index-format.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Git index format</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -743,8 +741,8 @@ <div class="sectionbody"> <div class="literalblock"> <div class="content"> -<pre><tt>All binary numbers are in network byte order. Version 2 is described -here unless stated otherwise.</tt></pre> +<pre><code>All binary numbers are in network byte order. Version 2 is described +here unless stated otherwise.</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -753,17 +751,17 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>4-byte signature: - The signature is { 'D', 'I', 'R', 'C' } (stands for "dircache")</tt></pre> +<pre><code>4-byte signature: + The signature is { 'D', 'I', 'R', 'C' } (stands for "dircache")</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>4-byte version number: - The current supported versions are 2, 3 and 4.</tt></pre> +<pre><code>4-byte version number: + The current supported versions are 2, 3 and 4.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit number of index entries.</tt></pre> +<pre><code>32-bit number of index entries.</code></pre> </div></div> </li> <li> @@ -777,25 +775,25 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>Extensions are identified by signature. Optional extensions can -be ignored if Git does not understand them.</tt></pre> +<pre><code>Extensions are identified by signature. Optional extensions can +be ignored if Git does not understand them.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Git currently supports cached tree and resolve undo extensions.</tt></pre> +<pre><code>Git currently supports cached tree and resolve undo extensions.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>4-byte extension signature. If the first byte is 'A'..'Z' the -extension is optional and can be ignored.</tt></pre> +<pre><code>4-byte extension signature. If the first byte is 'A'..'Z' the +extension is optional and can be ignored.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit size of the extension</tt></pre> +<pre><code>32-bit size of the extension</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Extension data</tt></pre> +<pre><code>Extension data</code></pre> </div></div> </li> <li> @@ -812,137 +810,137 @@ <div class="sectionbody"> <div class="literalblock"> <div class="content"> -<pre><tt>Index entries are sorted in ascending order on the name field, +<pre><code>Index entries are sorted in ascending order on the name field, interpreted as a string of unsigned bytes (i.e. memcmp() order, no localization, no special casing of directory separator '/'). Entries -with the same name are sorted by their stage field.</tt></pre> +with the same name are sorted by their stage field.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit ctime seconds, the last time a file's metadata changed - this is stat(2) data</tt></pre> +<pre><code>32-bit ctime seconds, the last time a file's metadata changed + this is stat(2) data</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit ctime nanosecond fractions - this is stat(2) data</tt></pre> +<pre><code>32-bit ctime nanosecond fractions + this is stat(2) data</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit mtime seconds, the last time a file's data changed - this is stat(2) data</tt></pre> +<pre><code>32-bit mtime seconds, the last time a file's data changed + this is stat(2) data</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit mtime nanosecond fractions - this is stat(2) data</tt></pre> +<pre><code>32-bit mtime nanosecond fractions + this is stat(2) data</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit dev - this is stat(2) data</tt></pre> +<pre><code>32-bit dev + this is stat(2) data</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit ino - this is stat(2) data</tt></pre> +<pre><code>32-bit ino + this is stat(2) data</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit mode, split into (high to low bits)</tt></pre> +<pre><code>32-bit mode, split into (high to low bits)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>4-bit object type +<pre><code>4-bit object type valid values in binary are 1000 (regular file), 1010 (symbolic link) - and 1110 (gitlink)</tt></pre> + and 1110 (gitlink)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>3-bit unused</tt></pre> +<pre><code>3-bit unused</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>9-bit unix permission. Only 0755 and 0644 are valid for regular files. -Symbolic links and gitlinks have value 0 in this field.</tt></pre> +<pre><code>9-bit unix permission. Only 0755 and 0644 are valid for regular files. +Symbolic links and gitlinks have value 0 in this field.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit uid - this is stat(2) data</tt></pre> +<pre><code>32-bit uid + this is stat(2) data</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit gid - this is stat(2) data</tt></pre> +<pre><code>32-bit gid + this is stat(2) data</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>32-bit file size - This is the on-disk size from stat(2), truncated to 32-bit.</tt></pre> +<pre><code>32-bit file size + This is the on-disk size from stat(2), truncated to 32-bit.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>160-bit SHA-1 for the represented object</tt></pre> +<pre><code>160-bit SHA-1 for the represented object</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>A 16-bit 'flags' field split into (high to low bits)</tt></pre> +<pre><code>A 16-bit 'flags' field split into (high to low bits)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>1-bit assume-valid flag</tt></pre> +<pre><code>1-bit assume-valid flag</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>1-bit extended flag (must be zero in version 2)</tt></pre> +<pre><code>1-bit extended flag (must be zero in version 2)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>2-bit stage (during merge)</tt></pre> +<pre><code>2-bit stage (during merge)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>12-bit name length if the length is less than 0xFFF; otherwise 0xFFF -is stored in this field.</tt></pre> +<pre><code>12-bit name length if the length is less than 0xFFF; otherwise 0xFFF +is stored in this field.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>(Version 3 or later) A 16-bit field, only applicable if the -"extended flag" above is 1, split into (high to low bits).</tt></pre> +<pre><code>(Version 3 or later) A 16-bit field, only applicable if the +"extended flag" above is 1, split into (high to low bits).</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>1-bit reserved for future</tt></pre> +<pre><code>1-bit reserved for future</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>1-bit skip-worktree flag (used by sparse checkout)</tt></pre> +<pre><code>1-bit skip-worktree flag (used by sparse checkout)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>1-bit intent-to-add flag (used by "git add -N")</tt></pre> +<pre><code>1-bit intent-to-add flag (used by "git add -N")</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>13-bit unused, must be zero</tt></pre> +<pre><code>13-bit unused, must be zero</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Entry path name (variable length) relative to top level directory +<pre><code>Entry path name (variable length) relative to top level directory (without leading slash). '/' is used as path separator. The special path components ".", ".." and ".git" (without quotes) are disallowed. - Trailing slash is also disallowed.</tt></pre> + Trailing slash is also disallowed.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The exact encoding is undefined, but the '.' and '/' characters +<pre><code>The exact encoding is undefined, but the '.' and '/' characters are encoded in 7-bit ASCII and the encoding cannot contain a NUL -byte (iow, this is a UNIX pathname).</tt></pre> +byte (iow, this is a UNIX pathname).</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>(Version 4) In version 4, the entry path name is prefix-compressed +<pre><code>(Version 4) In version 4, the entry path name is prefix-compressed relative to the path name for the previous entry (the very first entry is encoded as if the path name for the previous entry is an empty string). At the beginning of an entry, an integer N in the @@ -950,22 +948,22 @@ for OFS_DELTA pack entries; see pack-format.txt) is stored, followed by a NUL-terminated string S. Removing N bytes from the end of the path name for the previous entry, and replacing it with the string S - yields the path name for this entry.</tt></pre> + yields the path name for this entry.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>1-8 nul bytes as necessary to pad the entry to a multiple of eight bytes -while keeping the name NUL-terminated.</tt></pre> +<pre><code>1-8 nul bytes as necessary to pad the entry to a multiple of eight bytes +while keeping the name NUL-terminated.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>(Version 4) In version 4, the padding after the pathname does not -exist.</tt></pre> +<pre><code>(Version 4) In version 4, the padding after the pathname does not +exist.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Interpretation of index entries in split index mode is completely -different. See below for details.</tt></pre> +<pre><code>Interpretation of index entries in split index mode is completely +different. See below for details.</code></pre> </div></div> </div> </div> @@ -976,23 +974,23 @@ <h3 id="_cached_tree">Cached tree</h3> <div class="literalblock"> <div class="content"> -<pre><tt>Cached tree extension contains pre-computed hashes for trees that can +<pre><code>Cached tree extension contains pre-computed hashes for trees that can be derived from the index. It helps speed up tree object generation -from index for a new commit.</tt></pre> +from index for a new commit.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>When a path is updated in index, the path must be invalidated and -removed from tree cache.</tt></pre> +<pre><code>When a path is updated in index, the path must be invalidated and +removed from tree cache.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The signature for this extension is { 'T', 'R', 'E', 'E' }.</tt></pre> +<pre><code>The signature for this extension is { 'T', 'R', 'E', 'E' }.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>A series of entries fill the entire extension; each of which -consists of:</tt></pre> +<pre><code>A series of entries fill the entire extension; each of which +consists of:</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -1029,18 +1027,18 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>An entry can be in an invalidated state and is represented by having +<pre><code>An entry can be in an invalidated state and is represented by having a negative number in the entry_count field. In this case, there is no object name and the next entry starts immediately after the newline. -When writing an invalid entry, -1 should always be used as entry_count.</tt></pre> +When writing an invalid entry, -1 should always be used as entry_count.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The entries are written out in the top-down, depth-first order. The +<pre><code>The entries are written out in the top-down, depth-first order. The first entry represents the root level of the repository, followed by the first subtree---let's call this A---of the root level (with its name relative to the root level), followed by the first subtree of A (with -its name relative to A), ...</tt></pre> +its name relative to A), ...</code></pre> </div></div> </li> </ul></div> @@ -1049,26 +1047,26 @@ <h3 id="_resolve_undo">Resolve undo</h3> <div class="literalblock"> <div class="content"> -<pre><tt>A conflict is represented in the index as a set of higher stage entries. +<pre><code>A conflict is represented in the index as a set of higher stage entries. When a conflict is resolved (e.g. with "git add path"), these higher stage entries will be removed and a stage-0 entry with proper resolution -is added.</tt></pre> +is added.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>When these higher stage entries are removed, they are saved in the +<pre><code>When these higher stage entries are removed, they are saved in the resolve undo extension, so that conflicts can be recreated (e.g. with "git checkout -m"), in case users want to redo a conflict resolution -from scratch.</tt></pre> +from scratch.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The signature for this extension is { 'R', 'E', 'U', 'C' }.</tt></pre> +<pre><code>The signature for this extension is { 'R', 'E', 'U', 'C' }.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>A series of entries fill the entire extension; each of which -consists of:</tt></pre> +<pre><code>A series of entries fill the entire extension; each of which +consists of:</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -1096,17 +1094,17 @@ <h3 id="_split_index">Split index</h3> <div class="literalblock"> <div class="content"> -<pre><tt>In split index mode, the majority of index entries could be stored +<pre><code>In split index mode, the majority of index entries could be stored in a separate file. This extension records the changes to be made on -top of that to produce the final index.</tt></pre> +top of that to produce the final index.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The signature for this extension is { 'l', 'i, 'n', 'k' }.</tt></pre> +<pre><code>The signature for this extension is { 'l', 'i, 'n', 'k' }.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The extension consists of:</tt></pre> +<pre><code>The extension consists of:</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -1138,9 +1136,9 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>The remaining index entries after replaced ones will be added to the +<pre><code>The remaining index entries after replaced ones will be added to the final index. These added entries are also sorted by entry namme then -stage.</tt></pre> +stage.</code></pre> </div></div> </li> </ul></div>
diff --git a/technical/pack-format.html b/technical/pack-format.html index 4b7719e..00369e7 100644 --- a/technical/pack-format.html +++ b/technical/pack-format.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Git pack format</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -748,23 +746,23 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>4-byte signature: - The signature is: {'P', 'A', 'C', 'K'}</tt></pre> +<pre><code>4-byte signature: + The signature is: {'P', 'A', 'C', 'K'}</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>4-byte version number (network byte order): +<pre><code>4-byte version number (network byte order): Git currently accepts version number 2 or 3 but - generates version 2 only.</tt></pre> + generates version 2 only.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>4-byte number of objects contained in the pack (network byte order)</tt></pre> +<pre><code>4-byte number of objects contained in the pack (network byte order)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Observation: we cannot have more than 4G versions ;-) and -more than 4G objects in a pack.</tt></pre> +<pre><code>Observation: we cannot have more than 4G versions ;-) and +more than 4G objects in a pack.</code></pre> </div></div> </li> <li> @@ -774,23 +772,23 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>(undeltified representation) +<pre><code>(undeltified representation) n-byte type and length (3-bit type, (n-1)*7+4-bit length) -compressed data</tt></pre> +compressed data</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>(deltified representation) +<pre><code>(deltified representation) n-byte type and length (3-bit type, (n-1)*7+4-bit length) 20-byte base object name if OBJ_REF_DELTA or a negative relative offset from the delta object's position in the pack if this is an OBJ_OFS_DELTA object -compressed delta data</tt></pre> +compressed delta data</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Observation: length of each object is encoded in a variable -length format and is not constrained to 32-bit or anything.</tt></pre> +<pre><code>Observation: length of each object is encoded in a variable +length format and is not constrained to 32-bit or anything.</code></pre> </div></div> </li> <li> @@ -821,13 +819,13 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>4-byte network byte order integer, recording where the +<pre><code>4-byte network byte order integer, recording where the object is stored in the packfile as the offset from the -beginning.</tt></pre> +beginning.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>20-byte object name.</tt></pre> +<pre><code>20-byte object name.</code></pre> </div></div> </li> <li> @@ -836,19 +834,19 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>A copy of the 20-byte SHA-1 checksum at the end of -corresponding packfile.</tt></pre> +<pre><code>A copy of the 20-byte SHA-1 checksum at the end of +corresponding packfile.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>20-byte SHA-1-checksum of all of the above.</tt></pre> +<pre><code>20-byte SHA-1-checksum of all of the above.</code></pre> </div></div> </li> </ul></div> <div class="paragraph"><p>Pack Idx file:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt> -- +--------------------------------+ +<pre><code> -- +--------------------------------+ fanout | fanout[0] = 2 (for example) |-. table +--------------------------------+ | | fanout[1] | | @@ -878,11 +876,11 @@ | +--------------------------------+ .-------. | -Pack file entry: <+</tt></pre> +Pack file entry: <+</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>packed object header: +<pre><code>packed object header: 1-byte size extension bit (MSB) type (next 3 bit) size0 (lower 4-bit) @@ -902,16 +900,16 @@ offset from the type-byte of the header of the ofs-delta entry (the size above is the size of the delta data that follows). - delta data, deflated.</tt></pre> + delta data, deflated.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>offset encoding: +<pre><code>offset encoding: n bytes with MSB set in all but the last one. The offset is then the number constructed by concatenating the lower 7 bit of each byte, and for n >= 2 adding 2^7 + 2^14 + ... + 2^(7*(n-1)) - to the result.</tt></pre> + to the result.</code></pre> </div></div> </div> </div> @@ -920,7 +918,7 @@ <div class="sectionbody"> <div class="literalblock"> <div class="content"> -<pre><tt>have some other reorganizations. They have the format:</tt></pre> +<pre><code>have some other reorganizations. They have the format:</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -976,12 +974,12 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt>A copy of the 20-byte SHA-1 checksum at the end of -corresponding packfile.</tt></pre> +<pre><code>A copy of the 20-byte SHA-1 checksum at the end of +corresponding packfile.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>20-byte SHA-1-checksum of all of the above.</tt></pre> +<pre><code>20-byte SHA-1-checksum of all of the above.</code></pre> </div></div> </li> </ul></div>
diff --git a/technical/pack-heuristics.html b/technical/pack-heuristics.html index 3186ac0..905abf4 100644 --- a/technical/pack-heuristics.html +++ b/technical/pack-heuristics.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Concerning Git’s Packing Heuristics</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -742,13 +740,13 @@ <div class="sectionbody"> <div class="literalblock"> <div class="content"> -<pre><tt>Oh, here's a really stupid question:</tt></pre> +<pre><code>Oh, here's a really stupid question:</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt> Where do I go +<pre><code> Where do I go to learn the details -of Git's packing heuristics?</tt></pre> +of Git's packing heuristics?</code></pre> </div></div> <div class="paragraph"><p>Be careful what you ask!</p></div> <div class="paragraph"><p>Followers of the Git, please open the Git IRC Log and turn to @@ -759,11 +757,11 @@ <div class="paragraph"><p>Let’s listen in!</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> Oh, here's a really stupid question -- where do I go to +<pre><code><njs`> Oh, here's a really stupid question -- where do I go to learn the details of Git's packing heuristics? google avails me not, reading the source didn't help a lot, and wading through the whole mailing list seems less efficient than any - of that.</tt></pre> + of that.</code></pre> </div></div> <div class="paragraph"><p>It is a bold start! A plea for help combined with a simultaneous tri-part attack on some of the tried and true mainstays in the quest @@ -772,65 +770,65 @@ Woe.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><pasky> yes, the packing-related delta stuff is somewhat - mysterious even for me ;)</tt></pre> +<pre><code><pasky> yes, the packing-related delta stuff is somewhat + mysterious even for me ;)</code></pre> </div></div> <div class="paragraph"><p>Ah! Modesty after all.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> njs, I don't think the docs exist. That's something where +<pre><code><linus> njs, I don't think the docs exist. That's something where I don't think anybody else than me even really got involved. Most of the rest of Git others have been busy with (especially - Junio), but packing nobody touched after I did it.</tt></pre> + Junio), but packing nobody touched after I did it.</code></pre> </div></div> <div class="paragraph"><p>It’s cryptic, yet vague. Linus in style for sure. Wise men interpret this as an apology. A few argue it is merely a statement of fact.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> I guess the next step is "read the source again", but I - have to build up a certain level of gumption first :-)</tt></pre> +<pre><code><njs`> I guess the next step is "read the source again", but I + have to build up a certain level of gumption first :-)</code></pre> </div></div> <div class="paragraph"><p>Indeed! On both points.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> The packing heuristic is actually really really simple.</tt></pre> +<pre><code><linus> The packing heuristic is actually really really simple.</code></pre> </div></div> <div class="paragraph"><p>Bait…</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> But strange.</tt></pre> +<pre><code><linus> But strange.</code></pre> </div></div> <div class="paragraph"><p>And switch. That ought to do it!</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Remember: Git really doesn't follow files. So what it does is +<pre><code><linus> Remember: Git really doesn't follow files. So what it does is - generate a list of all objects - sort the list according to magic heuristics - walk the list, using a sliding window, seeing if an object can be diffed against another object in the window - - write out the list in recency order</tt></pre> + - write out the list in recency order</code></pre> </div></div> <div class="paragraph"><p>The traditional understatement:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> I suspect that what I'm missing is the precise definition of - the word "magic"</tt></pre> +<pre><code><njs`> I suspect that what I'm missing is the precise definition of + the word "magic"</code></pre> </div></div> <div class="paragraph"><p>The traditional insight:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><pasky> yes</tt></pre> +<pre><code><pasky> yes</code></pre> </div></div> <div class="paragraph"><p>And Babel-like confusion flowed.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> oh, hmm, and I'm not sure what this sliding window means either</tt></pre> +<pre><code><njs`> oh, hmm, and I'm not sure what this sliding window means either</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><pasky> iirc, it appeared to me to be just the sha1 of the object - when reading the code casually ...</tt></pre> +<pre><code><pasky> iirc, it appeared to me to be just the sha1 of the object + when reading the code casually ...</code></pre> </div></div> <div class="olist lowerroman"><ol class="lowerroman"> <li> @@ -839,83 +837,83 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> .....and recency order. okay, I think it's clear I didn't - even realize how much I wasn't realizing :-)</tt></pre> +<pre><code><njs`> .....and recency order. okay, I think it's clear I didn't + even realize how much I wasn't realizing :-)</code></pre> </div></div> </li> </ol></div> <div class="paragraph"><p>Ah, grasshopper! And thus the enlightenment begins anew.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> The "magic" is actually in theory totally arbitrary. +<pre><code><linus> The "magic" is actually in theory totally arbitrary. ANY order will give you a working pack, but no, it's not - ordered by SHA-1.</tt></pre> + ordered by SHA-1.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Before talking about the ordering for the sliding delta +<pre><code>Before talking about the ordering for the sliding delta window, let's talk about the recency order. That's more -important in one way.</tt></pre> +important in one way.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> Right, but if all you want is a working way to pack things +<pre><code><njs`> Right, but if all you want is a working way to pack things together, you could just use cat and save yourself some - trouble...</tt></pre> + trouble...</code></pre> </div></div> <div class="paragraph"><p>Waaait for it….</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> The recency ordering (which is basically: put objects +<pre><code><linus> The recency ordering (which is basically: put objects _physically_ into the pack in the order that they are - "reachable" from the head) is important.</tt></pre> + "reachable" from the head) is important.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> okay</tt></pre> +<pre><code><njs`> okay</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> It's important because that's the thing that gives packs +<pre><code><linus> It's important because that's the thing that gives packs good locality. It keeps the objects close to the head (whether they are old or new, but they are _reachable_ from the head) at the head of the pack. So packs actually have absolutely - _wonderful_ IO patterns.</tt></pre> + _wonderful_ IO patterns.</code></pre> </div></div> <div class="paragraph"><p>Read that again, because it is important.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> But recency ordering is totally useless for deciding how +<pre><code><linus> But recency ordering is totally useless for deciding how to actually generate the deltas, so the delta ordering is - something else.</tt></pre> + something else.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The delta ordering is (wait for it): +<pre><code>The delta ordering is (wait for it): - first sort by the "basename" of the object, as defined by the name the object was _first_ reached through when generating the object list - within the same basename, sort by size of the object -- but always sort different types separately (commits first).</tt></pre> +- but always sort different types separately (commits first).</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>That's not exactly it, but it's very close.</tt></pre> +<pre><code>That's not exactly it, but it's very close.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> The "_first_ reached" thing is not too important, just you +<pre><code><njs`> The "_first_ reached" thing is not too important, just you need some way to break ties since the same objects may be - reachable many ways, yes?</tt></pre> + reachable many ways, yes?</code></pre> </div></div> <div class="paragraph"><p>And as if to clarify:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> The point is that it's all really just any random +<pre><code><linus> The point is that it's all really just any random heuristic, and the ordering is totally unimportant for correctness, but it helps a lot if the heuristic gives "clumping" for things that are likely to delta well against - each other.</tt></pre> + each other.</code></pre> </div></div> <div class="paragraph"><p>It is an important point, so secretly, I did my own research and have included my results below. To be fair, it has changed some over time. @@ -923,7 +921,7 @@ from The Git IRC Logs on my father’s birthday, March 1:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><gitster> The quote from the above linus should be rewritten a +<pre><code><gitster> The quote from the above linus should be rewritten a bit (wait for it): - first sort by type. Different objects never delta with each other. @@ -933,81 +931,81 @@ - then if we are doing "thin" pack, the objects we are _not_ going to pack but we know about are sorted earlier than other objects. - - and finally sort by size, larger to smaller.</tt></pre> + - and finally sort by size, larger to smaller.</code></pre> </div></div> <div class="paragraph"><p>In one swell-foop, clarification and obscurification! Nonetheless, authoritative. Cryptic, yet concise. It even solicits notions of quotes from The Source Code. Clearly, more study is needed.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><gitster> That's the sort order. What this means is: +<pre><code><gitster> That's the sort order. What this means is: - we do not delta different object types. - we prefer to delta the objects with the same full path, but allow files with the same name from different directories. - we always prefer to delta against objects we are not going to send, if there are some. - we prefer to delta against larger objects, so that we have - lots of removals.</tt></pre> + lots of removals.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>The penultimate rule is for "thin" packs. It is used when -the other side is known to have such objects.</tt></pre> +<pre><code>The penultimate rule is for "thin" packs. It is used when +the other side is known to have such objects.</code></pre> </div></div> <div class="paragraph"><p>There it is again. "Thin" packs. I’m thinking to myself, "What is a <em>thin</em> pack?" So I ask:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><jdl> What is a "thin" pack?</tt></pre> +<pre><code><jdl> What is a "thin" pack?</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><gitster> Use of --objects-edge to rev-list as the upstream of - pack-objects. The pack transfer protocol negotiates that.</tt></pre> +<pre><code><gitster> Use of --objects-edge to rev-list as the upstream of + pack-objects. The pack transfer protocol negotiates that.</code></pre> </div></div> <div class="paragraph"><p>Woo hoo! Cleared that <em>right</em> up!</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><gitster> There are two directions - push and fetch.</tt></pre> +<pre><code><gitster> There are two directions - push and fetch.</code></pre> </div></div> <div class="paragraph"><p>There! Did you see it? It is not <em>"push" and "pull"</em>! How often the confusion has started here. So casually mentioned, too!</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><gitster> For push, git-send-pack invokes git-receive-pack on the +<pre><code><gitster> For push, git-send-pack invokes git-receive-pack on the other end. The receive-pack says "I have up to these commits". send-pack looks at them, and computes what are missing from - the other end. So "thin" could be the default there.</tt></pre> + the other end. So "thin" could be the default there.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>In the other direction, fetch, git-fetch-pack and +<pre><code>In the other direction, fetch, git-fetch-pack and git-clone-pack invokes git-upload-pack on the other end -(via ssh or by talking to the daemon).</tt></pre> +(via ssh or by talking to the daemon).</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>There are two cases: fetch-pack with -k and clone-pack is one, +<pre><code>There are two cases: fetch-pack with -k and clone-pack is one, fetch-pack without -k is the other. clone-pack and fetch-pack with -k will keep the downloaded packfile without expanded, so we do not use thin pack transfer. Otherwise, the generated -pack will have delta without base object in the same pack.</tt></pre> +pack will have delta without base object in the same pack.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>But fetch-pack without -k will explode the received pack into +<pre><code>But fetch-pack without -k will explode the received pack into individual objects, so we automatically ask upload-pack to -give us a thin pack if upload-pack supports it.</tt></pre> +give us a thin pack if upload-pack supports it.</code></pre> </div></div> <div class="paragraph"><p>OK then.</p></div> <div class="paragraph"><p>Uh.</p></div> <div class="paragraph"><p>Let’s return to the previous conversation still in progress.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> and "basename" means something like "the tail of end of +<pre><code><njs`> and "basename" means something like "the tail of end of path of file objects and dir objects, as per basename(3), and we just declare all commit and tag objects to have the same - basename" or something?</tt></pre> + basename" or something?</code></pre> </div></div> <div class="paragraph"><p>Luckily, that too is a point that gitster clarified for us!</p></div> <div class="paragraph"><p>If I might add, the trick is to make files that <em>might</em> be similar be @@ -1021,73 +1019,73 @@ content no matter what directory they live in.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> I played around with different delta algorithms, and with +<pre><code><linus> I played around with different delta algorithms, and with making the "delta window" bigger, but having too big of a sliding window makes it very expensive to generate the pack: - you need to compare every object with a _ton_ of other objects.</tt></pre> + you need to compare every object with a _ton_ of other objects.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>There are a number of other trivial heuristics too, which +<pre><code>There are a number of other trivial heuristics too, which basically boil down to "don't bother even trying to delta this pair" if we can tell before-hand that the delta isn't worth it (due to size differences, where we can take a previous delta result into account to decide that "ok, no point in trying -that one, it will be worse").</tt></pre> +that one, it will be worse").</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>End result: packing is actually very size efficient. It's +<pre><code>End result: packing is actually very size efficient. It's somewhat CPU-wasteful, but on the other hand, since you're really only supposed to do it maybe once a month (and you can -do it during the night), nobody really seems to care.</tt></pre> +do it during the night), nobody really seems to care.</code></pre> </div></div> <div class="paragraph"><p>Nice Engineering Touch, there. Find when it doesn’t matter, and proclaim it a non-issue. Good style too!</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> So, just to repeat to see if I'm following, we start by +<pre><code><njs`> So, just to repeat to see if I'm following, we start by getting a list of the objects we want to pack, we sort it by this heuristic (basically lexicographically on the tuple - (type, basename, size)).</tt></pre> + (type, basename, size)).</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Then we walk through this list, and calculate a delta of +<pre><code>Then we walk through this list, and calculate a delta of each object against the last n (tunable parameter) objects, -and pick the smallest of these deltas.</tt></pre> +and pick the smallest of these deltas.</code></pre> </div></div> <div class="paragraph"><p>Vastly simplified, but the essence is there!</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Correct.</tt></pre> +<pre><code><linus> Correct.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> And then once we have picked a delta or fulltext to +<pre><code><njs`> And then once we have picked a delta or fulltext to represent each object, we re-sort by recency, and write them - out in that order.</tt></pre> + out in that order.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Yup. Some other small details:</tt></pre> +<pre><code><linus> Yup. Some other small details:</code></pre> </div></div> <div class="paragraph"><p>And of course there is the "Other Shoe" Factor too.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> - We limit the delta depth to another magic value (right - now both the window and delta depth magic values are just "10")</tt></pre> +<pre><code><linus> - We limit the delta depth to another magic value (right + now both the window and delta depth magic values are just "10")</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> Hrm, my intuition is that you'd end up with really _bad_ IO +<pre><code><njs`> Hrm, my intuition is that you'd end up with really _bad_ IO patterns, because the things you want are near by, but to actually reconstruct them you may have to jump all over in - random ways.</tt></pre> + random ways.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> - When we write out a delta, and we haven't yet written +<pre><code><linus> - When we write out a delta, and we haven't yet written out the object it is a delta against, we write out the base object first. And no, when we reconstruct them, we actually get nice IO patterns, because: @@ -1095,58 +1093,58 @@ - we actively try to generate deltas from a larger object to a smaller one - this means that the top-of-tree very seldom has deltas - (i.e. deltas in _practice_ are "backwards deltas")</tt></pre> + (i.e. deltas in _practice_ are "backwards deltas")</code></pre> </div></div> <div class="paragraph"><p>Again, we should reread that whole paragraph. Not just because Linus has slipped Linus’s Law in there on us, but because it is important. Let’s make sure we clarify some of the points here:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> So the point is just that in practice, delta order and - recency order match each other quite well.</tt></pre> +<pre><code><njs`> So the point is just that in practice, delta order and + recency order match each other quite well.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Yes. There's another nice side to this (and yes, it was +<pre><code><linus> Yes. There's another nice side to this (and yes, it was designed that way ;): - the reason we generate deltas against the larger object is - actually a big space saver too!</tt></pre> + actually a big space saver too!</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> Hmm, but your last comment (if "we haven't yet written out +<pre><code><njs`> Hmm, but your last comment (if "we haven't yet written out the object it is a delta against, we write out the base object first"), seems like it would make these facts mostly irrelevant because even if in practice you would not have to wander around much, in fact you just brute-force say that in - the cases where you might have to wander, don't do that :-)</tt></pre> + the cases where you might have to wander, don't do that :-)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Yes and no. Notice the rule: we only write out the base +<pre><code><linus> Yes and no. Notice the rule: we only write out the base object first if the delta against it was more recent. That means that you can actually have deltas that refer to a base object that is _not_ close to the delta object, but that only - happens when the delta is needed to generate an _old_ object.</tt></pre> + happens when the delta is needed to generate an _old_ object.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> See?</tt></pre> +<pre><code><linus> See?</code></pre> </div></div> <div class="paragraph"><p>Yeah, no. I missed that on the first two or three readings myself.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> This keeps the front of the pack dense. The front of the +<pre><code><linus> This keeps the front of the pack dense. The front of the pack never contains data that isn't relevant to a "recent" object. The size optimization comes from our use of xdelta (but is true for many other delta algorithms): removing data - is cheaper (in size) than adding data.</tt></pre> + is cheaper (in size) than adding data.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>When you remove data, you only need to say "copy bytes n--m". +<pre><code>When you remove data, you only need to say "copy bytes n--m". In contrast, in a delta that _adds_ data, you have to say "add -these bytes: 'actual data goes here'"</tt></pre> +these bytes: 'actual data goes here'"</code></pre> </div></div> <div class="ulist"><ul> <li> @@ -1155,7 +1153,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Uhhuh. I hope I didn't blow njs` mind.</tt></pre> +<pre><code><linus> Uhhuh. I hope I didn't blow njs` mind.</code></pre> </div></div> </li> <li> @@ -1164,7 +1162,7 @@ </p> <div class="literalblock"> <div class="content"> -<pre><tt><pasky> :)</tt></pre> +<pre><code><pasky> :)</code></pre> </div></div> </li> </ul></div> @@ -1172,7 +1170,7 @@ <div class="paragraph"><p>And as if njs` was expected to be omniscient:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> njs - did you miss anything?</tt></pre> +<pre><code><linus> njs - did you miss anything?</code></pre> </div></div> <div class="paragraph"><p>OK, I’ll spell it out. That’s Geek Humor. If njs` was not actually connected for a little bit there, how would he know if missed anything @@ -1180,161 +1178,161 @@ humor! Well noted!</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> Stupid router. Or gremlins, or whatever.</tt></pre> +<pre><code><njs`> Stupid router. Or gremlins, or whatever.</code></pre> </div></div> <div class="paragraph"><p>It’s a cheap shot at Cisco. Take 'em when you can.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> Yes and no. Notice the rule: we only write out the base - object first if the delta against it was more recent.</tt></pre> +<pre><code><njs`> Yes and no. Notice the rule: we only write out the base + object first if the delta against it was more recent.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>I'm getting lost in all these orders, let me re-read :-) +<pre><code>I'm getting lost in all these orders, let me re-read :-) So the write-out order is from most recent to least recent? (Conceivably it could be the opposite way too, I'm not sure if we've said) though my connection back at home is logging, so I -can just read what you said there :-)</tt></pre> +can just read what you said there :-)</code></pre> </div></div> <div class="paragraph"><p>And for those of you paying attention, the Omniscient Trick has just been detailed!</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Yes, we always write out most recent first</tt></pre> +<pre><code><linus> Yes, we always write out most recent first</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> And, yeah, I got the part about deeper-in-history stuff - having worse IO characteristics, one sort of doesn't care.</tt></pre> +<pre><code><njs`> And, yeah, I got the part about deeper-in-history stuff + having worse IO characteristics, one sort of doesn't care.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> With the caveat that if the "most recent" needs an older +<pre><code><linus> With the caveat that if the "most recent" needs an older object to delta against (hey, shrinking sometimes does - happen), we write out the old object with the delta.</tt></pre> + happen), we write out the old object with the delta.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> (if only it happened more...)</tt></pre> +<pre><code><njs`> (if only it happened more...)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Anyway, the pack-file could easily be denser still, but +<pre><code><linus> Anyway, the pack-file could easily be denser still, but because it's used both for streaming (the Git protocol) and - for on-disk, it has a few pessimizations.</tt></pre> + for on-disk, it has a few pessimizations.</code></pre> </div></div> <div class="paragraph"><p>Actually, it is a made-up word. But it is a made-up word being used as setup for a later optimization, which is a real word:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> In particular, while the pack-file is then compressed, +<pre><code><linus> In particular, while the pack-file is then compressed, it's compressed just one object at a time, so the actual compression factor is less than it could be in theory. But it means that it's all nice random-access with a simple index to - do "object name->location in packfile" translation.</tt></pre> + do "object name->location in packfile" translation.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> I'm assuming the real win for delta-ing large->small is - more homogeneous statistics for gzip to run over?</tt></pre> +<pre><code><njs`> I'm assuming the real win for delta-ing large->small is + more homogeneous statistics for gzip to run over?</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>(You have to put the bytes in one place or another, but -putting them in a larger blob wins on compression)</tt></pre> +<pre><code>(You have to put the bytes in one place or another, but +putting them in a larger blob wins on compression)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Actually, what is the compression strategy -- each delta +<pre><code>Actually, what is the compression strategy -- each delta individually gzipped, the whole file gzipped, somewhere in -between, no compression at all, ....?</tt></pre> +between, no compression at all, ....?</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Right.</tt></pre> +<pre><code>Right.</code></pre> </div></div> <div class="paragraph"><p>Reality IRC sets in. For example:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><pasky> I'll read the rest in the morning, I really have to go +<pre><code><pasky> I'll read the rest in the morning, I really have to go sleep or there's no hope whatsoever for me at the today's - exam... g'nite all.</tt></pre> + exam... g'nite all.</code></pre> </div></div> <div class="paragraph"><p>Heh.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> pasky: g'nite</tt></pre> +<pre><code><linus> pasky: g'nite</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> pasky: 'luck</tt></pre> +<pre><code><njs`> pasky: 'luck</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Right: large->small matters exactly because of compression +<pre><code><linus> Right: large->small matters exactly because of compression behaviour. If it was non-compressed, it probably wouldn't make - any difference.</tt></pre> + any difference.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> yeah</tt></pre> +<pre><code><njs`> yeah</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Anyway: I'm not even trying to claim that the pack-files +<pre><code><linus> Anyway: I'm not even trying to claim that the pack-files are perfect, but they do tend to have a nice balance of - density vs ease-of use.</tt></pre> + density vs ease-of use.</code></pre> </div></div> <div class="paragraph"><p>Gasp! OK, saved. That’s a fair Engineering trade off. Close call! In fact, Linus reflects on some Basic Engineering Fundamentals, design options, etc.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> More importantly, they allow Git to still _conceptually_ - never deal with deltas at all, and be a "whole object" store.</tt></pre> +<pre><code><linus> More importantly, they allow Git to still _conceptually_ + never deal with deltas at all, and be a "whole object" store.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Which has some problems (we discussed bad huge-file +<pre><code>Which has some problems (we discussed bad huge-file behaviour on the Git lists the other day), but it does mean that the basic Git concepts are really really simple and -straightforward.</tt></pre> +straightforward.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>It's all been quite stable.</tt></pre> +<pre><code>It's all been quite stable.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Which I think is very much a result of having very simple +<pre><code>Which I think is very much a result of having very simple basic ideas, so that there's never any confusion about what's -going on.</tt></pre> +going on.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt>Bugs happen, but they are "simple" bugs. And bugs that +<pre><code>Bugs happen, but they are "simple" bugs. And bugs that actually get some object store detail wrong are almost always -so obvious that they never go anywhere.</tt></pre> +so obvious that they never go anywhere.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> Yeah.</tt></pre> +<pre><code><njs`> Yeah.</code></pre> </div></div> <div class="paragraph"><p>Nuff said.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt><linus> Anyway. I'm off for bed. It's not 6AM here, but I've got +<pre><code><linus> Anyway. I'm off for bed. It's not 6AM here, but I've got three kids, and have to get up early in the morning to send - them off. I need my beauty sleep.</tt></pre> + them off. I need my beauty sleep.</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> :-)</tt></pre> +<pre><code><njs`> :-)</code></pre> </div></div> <div class="literalblock"> <div class="content"> -<pre><tt><njs`> appreciate the infodump, I really was failing to find the - details on Git packs :-)</tt></pre> +<pre><code><njs`> appreciate the infodump, I really was failing to find the + details on Git packs :-)</code></pre> </div></div> <div class="paragraph"><p>And now you know the rest of the story.</p></div> </div>
diff --git a/technical/protocol-common.html b/technical/protocol-common.html index a009ca7..206f1de 100644 --- a/technical/protocol-common.html +++ b/technical/protocol-common.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Documentation Common to Pack and Http Protocols</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -745,17 +743,17 @@ except the following replacement core rules are used:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> HEXDIG = DIGIT / "a" / "b" / "c" / "d" / "e" / "f"</tt></pre> +<pre><code> HEXDIG = DIGIT / "a" / "b" / "c" / "d" / "e" / "f"</code></pre> </div></div> <div class="paragraph"><p>We also define the following common rules:</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> NUL = %x00 +<pre><code> NUL = %x00 zero-id = 40*"0" obj-id = 40*(HEXDIGIT) refname = "HEAD" - refname /= "refs/" <see discussion below></tt></pre> + refname /= "refs/" <see discussion below></code></pre> </div></div> <div class="paragraph"><p>A refname is a hierarchical octet string beginning with "refs/" and not violating the <em>git-check-ref-format</em> command’s validation rules. @@ -763,49 +761,49 @@ <div class="olist arabic"><ol class="arabic"> <li> <p> -They can include slash <tt>/</tt> for hierarchical (directory) +They can include slash <code>/</code> for hierarchical (directory) grouping, but no slash-separated component can begin with a - dot <tt>.</tt>. + dot <code>.</code>. </p> </li> <li> <p> -They must contain at least one <tt>/</tt>. This enforces the presence of a - category like <tt>heads/</tt>, <tt>tags/</tt> etc. but the actual names are not +They must contain at least one <code>/</code>. This enforces the presence of a + category like <code>heads/</code>, <code>tags/</code> etc. but the actual names are not restricted. </p> </li> <li> <p> -They cannot have two consecutive dots <tt>..</tt> anywhere. +They cannot have two consecutive dots <code>..</code> anywhere. </p> </li> <li> <p> They cannot have ASCII control characters (i.e. bytes whose - values are lower than \040, or \177 <tt>DEL</tt>), space, tilde <tt>~</tt>, - caret <tt>^</tt>, colon <tt>:</tt>, question-mark <tt>?</tt>, asterisk <tt>*</tt>, - or open bracket <tt>[</tt> anywhere. + values are lower than \040, or \177 <code>DEL</code>), space, tilde <code>~</code>, + caret <code>^</code>, colon <code>:</code>, question-mark <code>?</code>, asterisk <code>*</code>, + or open bracket <code>[</code> anywhere. </p> </li> <li> <p> -They cannot end with a slash <tt>/</tt> or a dot <tt>.</tt>. +They cannot end with a slash <code>/</code> or a dot <code>.</code>. </p> </li> <li> <p> -They cannot end with the sequence <tt>.lock</tt>. +They cannot end with the sequence <code>.lock</code>. </p> </li> <li> <p> -They cannot contain a sequence <tt>@{</tt>. +They cannot contain a sequence <code>@{</code>. </p> </li> <li> <p> -They cannot contain a <tt>\\</tt>. +They cannot contain a <code>\\</code>. </p> </li> </ol></div> @@ -832,23 +830,23 @@ pkt-line ("0004").</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> pkt-line = data-pkt / flush-pkt +<pre><code> pkt-line = data-pkt / flush-pkt data-pkt = pkt-len pkt-payload pkt-len = 4*(HEXDIG) pkt-payload = (pkt-len - 4)*(OCTET) - flush-pkt = "0000"</tt></pre> + flush-pkt = "0000"</code></pre> </div></div> <div class="paragraph"><p>Examples (as C-style strings):</p></div> <div class="listingblock"> <div class="content"> -<pre><tt> pkt-line actual value +<pre><code> pkt-line actual value --------------------------------- "0006a\n" "a\n" "0005a" "a" "000bfoobar\n" "foobar\n" - "0004" ""</tt></pre> + "0004" ""</code></pre> </div></div> </div> </div>
diff --git a/technical/racy-git.html b/technical/racy-git.html index 2d26147..f76e28f 100644 --- a/technical/racy-git.html +++ b/technical/racy-git.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Use of index and Racy Git problem</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -749,32 +747,32 @@ often does not, match the files in the working tree.</p></div> <div class="paragraph"><p>There are cases Git needs to examine the differences between the virtual working tree state in the index and the files in the -working tree. The most obvious case is when the user asks <tt>git -diff</tt> (or its low level implementation, <tt>git diff-files</tt>) or -<tt>git-ls-files --modified</tt>. In addition, Git internally checks +working tree. The most obvious case is when the user asks <code>git +diff</code> (or its low level implementation, <code>git diff-files</code>) or +<code>git-ls-files --modified</code>. In addition, Git internally checks if the files in the working tree are different from what are recorded in the index to avoid stomping on local changes in them during patch application, switching branches, and merging.</p></div> <div class="paragraph"><p>In order to speed up this comparison between the files in the working tree and the index entries, the index entries record the -information obtained from the filesystem via <tt>lstat(2)</tt> system +information obtained from the filesystem via <code>lstat(2)</code> system call when they were last updated. When checking if they differ, -Git first runs <tt>lstat(2)</tt> on the files and compares the result +Git first runs <code>lstat(2)</code> on the files and compares the result with this information (this is what was originally done by the -<tt>ce_match_stat()</tt> function, but the current code does it in -<tt>ce_match_stat_basic()</tt> function). If some of these "cached +<code>ce_match_stat()</code> function, but the current code does it in +<code>ce_match_stat_basic()</code> function). If some of these "cached stat information" fields do not match, Git can tell that the files are modified without even looking at their contents.</p></div> -<div class="paragraph"><p>Note: not all members in <tt>struct stat</tt> obtained via <tt>lstat(2)</tt> -are used for this comparison. For example, <tt>st_atime</tt> obviously +<div class="paragraph"><p>Note: not all members in <code>struct stat</code> obtained via <code>lstat(2)</code> +are used for this comparison. For example, <code>st_atime</code> obviously is not useful. Currently, Git compares the file type (regular files vs symbolic links) and executable bits (only for regular -files) from <tt>st_mode</tt> member, <tt>st_mtime</tt> and <tt>st_ctime</tt> -timestamps, <tt>st_uid</tt>, <tt>st_gid</tt>, <tt>st_ino</tt>, and <tt>st_size</tt> members. -With a <tt>USE_STDEV</tt> compile-time option, <tt>st_dev</tt> is also +files) from <code>st_mode</code> member, <code>st_mtime</code> and <code>st_ctime</code> +timestamps, <code>st_uid</code>, <code>st_gid</code>, <code>st_ino</code>, and <code>st_size</code> members. +With a <code>USE_STDEV</code> compile-time option, <code>st_dev</code> is also compared, but this is not enabled by default because this member -is not stable on network filesystems. With <tt>USE_NSEC</tt> -compile-time option, <tt>st_mtim.tv_nsec</tt> and <tt>st_ctim.tv_nsec</tt> +is not stable on network filesystems. With <code>USE_NSEC</code> +compile-time option, <code>st_mtim.tv_nsec</code> and <code>st_ctim.tv_nsec</code> members are also compared, but this is not enabled by default because in-core timestamps can have finer granularity than on-disk timestamps, resulting in meaningless changes when an @@ -791,17 +789,17 @@ cached stat information. Consider this sequence:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>: modify 'foo' +<pre><code>: modify 'foo' $ git update-index 'foo' -: modify 'foo' again, in-place, without changing its size</tt></pre> +: modify 'foo' again, in-place, without changing its size</code></pre> </div></div> -<div class="paragraph"><p>The first <tt>update-index</tt> computes the object name of the -contents of file <tt>foo</tt> and updates the index entry for <tt>foo</tt> -along with the <tt>struct stat</tt> information. If the modification -that follows it happens very fast so that the file’s <tt>st_mtime</tt> +<div class="paragraph"><p>The first <code>update-index</code> computes the object name of the +contents of file <code>foo</code> and updates the index entry for <code>foo</code> +along with the <code>struct stat</code> information. If the modification +that follows it happens very fast so that the file’s <code>st_mtime</code> timestamp does not change, after this sequence, the cached stat information the index entry records still exactly match what you -would see in the filesystem, even though the file <tt>foo</tt> is now +would see in the filesystem, even though the file <code>foo</code> is now different. This way, Git can incorrectly think files in the working tree are unmodified even though they actually are. This is called @@ -813,9 +811,9 @@ <li> <p> When the cached stat information says the file has not been - modified, and the <tt>st_mtime</tt> is the same as (or newer than) - the timestamp of the index file itself (which is the time <tt>git - update-index foo</tt> finished running in the above example), it + modified, and the <code>st_mtime</code> is the same as (or newer than) + the timestamp of the index file itself (which is the time <code>git + update-index foo</code> finished running in the above example), it also compares the contents with the object registered in the index entry to make sure they match. </p> @@ -823,79 +821,79 @@ <li> <p> When the index file is updated that contains racily clean - entries, cached <tt>st_size</tt> information is truncated to zero + entries, cached <code>st_size</code> information is truncated to zero before writing a new version of the index file. </p> </li> </ol></div> <div class="paragraph"><p>Because the index file itself is written after collecting all -the stat information from updated paths, <tt>st_mtime</tt> timestamp of +the stat information from updated paths, <code>st_mtime</code> timestamp of it is usually the same as or newer than any of the paths the index contains. And no matter how quick the modification that -follows <tt>git update-index foo</tt> finishes, the resulting -<tt>st_mtime</tt> timestamp on <tt>foo</tt> cannot get a value earlier +follows <code>git update-index foo</code> finishes, the resulting +<code>st_mtime</code> timestamp on <code>foo</code> cannot get a value earlier than the index file. Therefore, index entries that can be racily clean are limited to the ones that have the same timestamp as the index file itself.</p></div> <div class="paragraph"><p>The callers that want to check if an index entry matches the corresponding file in the working tree continue to call -<tt>ce_match_stat()</tt>, but with this change, <tt>ce_match_stat()</tt> uses -<tt>ce_modified_check_fs()</tt> to see if racily clean ones are +<code>ce_match_stat()</code>, but with this change, <code>ce_match_stat()</code> uses +<code>ce_modified_check_fs()</code> to see if racily clean ones are actually clean after comparing the cached stat information using -<tt>ce_match_stat_basic()</tt>.</p></div> +<code>ce_match_stat_basic()</code>.</p></div> <div class="paragraph"><p>The problem the latter solves is this sequence:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ git update-index 'foo' +<pre><code>$ git update-index 'foo' : modify 'foo' in-place without changing its size : wait for enough time -$ git update-index 'bar'</tt></pre> +$ git update-index 'bar'</code></pre> </div></div> <div class="paragraph"><p>Without the latter, the timestamp of the index file gets a newer -value, and falsely clean entry <tt>foo</tt> would not be caught by the +value, and falsely clean entry <code>foo</code> would not be caught by the timestamp comparison check done with the former logic anymore. -The latter makes sure that the cached stat information for <tt>foo</tt> +The latter makes sure that the cached stat information for <code>foo</code> would never match with the file in the working tree, so later -checks by <tt>ce_match_stat_basic()</tt> would report that the index entry +checks by <code>ce_match_stat_basic()</code> would report that the index entry does not match the file and Git does not have to fall back on more -expensive <tt>ce_modified_check_fs()</tt>.</p></div> +expensive <code>ce_modified_check_fs()</code>.</p></div> </div> </div> <div class="sect1"> <h2 id="_runtime_penalty">Runtime penalty</h2> <div class="sectionbody"> -<div class="paragraph"><p>The runtime penalty of falling back to <tt>ce_modified_check_fs()</tt> -from <tt>ce_match_stat()</tt> can be very expensive when there are many +<div class="paragraph"><p>The runtime penalty of falling back to <code>ce_modified_check_fs()</code> +from <code>ce_match_stat()</code> can be very expensive when there are many racily clean entries. An obvious way to artificially create this situation is to give the same timestamp to all the files in -the working tree in a large project, run <tt>git update-index</tt> on +the working tree in a large project, run <code>git update-index</code> on them, and give the same timestamp to the index file:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ date >.datestamp +<pre><code>$ date >.datestamp $ git ls-files | xargs touch -r .datestamp $ git ls-files | git update-index --stdin -$ touch -r .datestamp .git/index</tt></pre> +$ touch -r .datestamp .git/index</code></pre> </div></div> <div class="paragraph"><p>This will make all index entries racily clean. The linux project, for example, there are over 20,000 files in the working tree. On my Athlon 64 X2 3800+, after the above:</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>$ /usr/bin/time git diff-files +<pre><code>$ /usr/bin/time git diff-files 1.68user 0.54system 0:02.22elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k 0inputs+0outputs (0major+67111minor)pagefaults 0swaps $ git update-index MAINTAINERS $ /usr/bin/time git diff-files 0.02user 0.12system 0:00.14elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k -0inputs+0outputs (0major+935minor)pagefaults 0swaps</tt></pre> +0inputs+0outputs (0major+935minor)pagefaults 0swaps</code></pre> </div></div> -<div class="paragraph"><p>Running <tt>git update-index</tt> in the middle checked the racily -clean entries, and left the cached <tt>st_mtime</tt> for all the paths +<div class="paragraph"><p>Running <code>git update-index</code> in the middle checked the racily +clean entries, and left the cached <code>st_mtime</code> for all the paths intact because they were actually clean (so this step took about -the same amount of time as the first <tt>git diff-files</tt>). After +the same amount of time as the first <code>git diff-files</code>). After that, they are not racily clean anymore but are truly clean, so -the second invocation of <tt>git diff-files</tt> fully took advantage +the second invocation of <code>git diff-files</code> fully took advantage of the cached stat information.</p></div> </div> </div> @@ -914,17 +912,17 @@ <div class="olist arabic"><ol class="arabic"> <li> <p> -Initial <tt>git add .</tt> of a large project. +Initial <code>git add .</code> of a large project. </p> </li> <li> <p> -<tt>git checkout</tt> of a large project from an empty index into an +<code>git checkout</code> of a large project from an empty index into an unpopulated working tree. </p> </li> </ol></div> -<div class="paragraph"><p>Note: switching branches with <tt>git checkout</tt> keeps the cached +<div class="paragraph"><p>Note: switching branches with <code>git checkout</code> keeps the cached stat information of existing working tree files that are the same between the current branch and the new branch, which are all older than the resulting index file, and they will not
diff --git a/technical/send-pack-pipeline.html b/technical/send-pack-pipeline.html index 59ee072..bbe595a 100644 --- a/technical/send-pack-pipeline.html +++ b/technical/send-pack-pipeline.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Git-send-pack internals</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -785,12 +783,12 @@ <div class="sect1"> <h2 id="_pack_objects_pipeline">Pack_objects pipeline</h2> <div class="sectionbody"> -<div class="paragraph"><p>This function gets one file descriptor (<tt>fd</tt>) which is either a +<div class="paragraph"><p>This function gets one file descriptor (<code>fd</code>) which is either a socket (over the network) or a pipe (local). What’s written to this fd goes to git-receive-pack to be unpacked.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>send-pack ---> fd ---> receive-pack</tt></pre> +<pre><code>send-pack ---> fd ---> receive-pack</code></pre> </div></div> <div class="paragraph"><p>The function pack_objects creates a pipe and then forks. The forked child execs pack-objects with --revs to receive revision @@ -798,12 +796,12 @@ packfile to the other end.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>send-pack +<pre><code>send-pack | pack_objects() ---> fd ---> receive-pack | ^ (pipe) v | - (child)</tt></pre> + (child)</code></pre> </div></div> <div class="paragraph"><p>The child dup2’s to arrange its standard output to go back to the other end, and read its standard input to come from the @@ -812,12 +810,12 @@ closes the reading side of the pipe and fd to receive-pack.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>send-pack +<pre><code>send-pack | pack_objects(parent) | v [0] - pack-objects [0] ---> receive-pack</tt></pre> + pack-objects [0] ---> receive-pack</code></pre> </div></div> <div class="paragraph"><p>[jc: the pipeline was much more complex and needed documentation before I understood an earlier bug, but now it is trivial and straightforward.]</p></div>
diff --git a/technical/shallow.html b/technical/shallow.html index fd3a485..5610739 100644 --- a/technical/shallow.html +++ b/technical/shallow.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Shallow commits</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) {
diff --git a/technical/trivial-merge.html b/technical/trivial-merge.html index 6902d61..b7d9b9f 100644 --- a/technical/trivial-merge.html +++ b/technical/trivial-merge.html
@@ -3,7 +3,7 @@ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> -<meta name="generator" content="AsciiDoc 8.6.6" /> +<meta name="generator" content="AsciiDoc 8.6.9" /> <title>Trivial merge rules</title> <style type="text/css"> /* Shared CSS for AsciiDoc xhtml11 and html5 backends */ @@ -87,10 +87,16 @@ ul > li { color: #aaa; } ul > li > * { color: black; } -pre { +.monospaced, code, pre { + font-family: "Courier New", Courier, monospace; + font-size: inherit; + color: navy; padding: 0; margin: 0; } +pre { + white-space: pre-wrap; +} #author { color: #527bbd; @@ -219,7 +225,7 @@ } div.imageblock div.content { padding-left: 0; } -span.image img { border-style: none; } +span.image img { border-style: none; vertical-align: text-bottom; } a.image:visited { color: white; } dl { @@ -349,7 +355,7 @@ margin-bottom: 0.1em; } -div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { +div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 { margin-top: 0; margin-bottom: 0; } @@ -407,18 +413,14 @@ span.overline { text-decoration: overline; } span.line-through { text-decoration: line-through; } +div.unbreakable { page-break-inside: avoid; } + /* * xhtml11 specific * * */ -tt { - font-family: monospace; - font-size: inherit; - color: navy; -} - div.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -452,12 +454,6 @@ * * */ -.monospaced { - font-family: monospace; - font-size: inherit; - color: navy; -} - table.tableblock { margin-top: 1.0em; margin-bottom: 1.5em; @@ -537,6 +533,8 @@ @media print { body.manpage div#toc { display: none; } } + + </style> <script type="text/javascript"> /*<+'])'); + var re = new RegExp('[hH]([1-'+(toclevels+1)+'])'); // Function that scans the DOM tree for header elements (the DOM2 // nodeIterator API would be a better technique but not supported by all // browsers). @@ -610,7 +608,7 @@ var i; for (i = 0; i < toc.childNodes.length; i++) { var entry = toc.childNodes[i]; - if (entry.nodeName == 'div' + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") && entry.getAttribute("class").match(/^toclevel/)) tocEntriesToRemove.push(entry); @@ -656,7 +654,7 @@ var entriesToRemove = []; for (i = 0; i < noteholder.childNodes.length; i++) { var entry = noteholder.childNodes[i]; - if (entry.nodeName == 'div' && entry.getAttribute("class") == "footnote") + if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote") entriesToRemove.push(entry); } for (i = 0; i < entriesToRemove.length; i++) { @@ -753,12 +751,12 @@ affect the result.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>index tree result +<pre><code>index tree result ----------------------- * (empty) (empty) (empty) tree tree index+ tree tree -index+ index index+</tt></pre> +index+ index index+</code></pre> </div></div> </div> </div> @@ -776,7 +774,7 @@ affect the result.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>case index old new result +<pre><code>case index old new result ------------------------------------- 0/2 (empty) * (empty) (empty) 1/3 (empty) * new new @@ -785,7 +783,7 @@ 10 index+ index (empty) (empty) 14/15 index+ old old index+ 18/19 index+ old index index+ -20 index+ index new new</tt></pre> +20 index+ index new new</code></pre> </div></div> </div> </div> @@ -810,7 +808,7 @@ must be the same.</p></div> <div class="literalblock"> <div class="content"> -<pre><tt>case ancest head remote result +<pre><code>case ancest head remote result ---------------------------------------- 1 (empty)+ (empty) (empty) (empty) 2ALT (empty)+ *empty* remote remote @@ -827,7 +825,7 @@ 16 anc1/anc2 anc1 anc2 no merge 13 ancest+ head ancest head 14 ancest+ ancest remote remote -11 ancest+ head remote no merge</tt></pre> +11 ancest+ head remote no merge</code></pre> </div></div> <div class="paragraph"><p>Only #2ALT and #3ALT use <strong>empty</strong>, because these are the only cases where there can be conflicts that didn’t exist before. Note that we
diff --git a/user-manual.html b/user-manual.html index 4f8cbeb..7d108a6 100644 --- a/user-manual.html +++ b/user-manual.html
@@ -1,5 +1,5 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> -<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User Manual</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="article" title="Git User Manual"><div class="titlepage"><div><div><h2 class="title"><a name="idp346192"></a>Git User Manual</h2></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><span class="section"><a href="#repositories-and-branches">Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a Git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-With-git-fetch">Updating a repository with git fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="section"><a href="#exploring-git-history">Exploring Git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#Developing-With-git">Developing with Git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling Git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt></dl></dd><dt><span class="section"><a href="#sharing-development">Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-With-git-pull">Getting updates with git pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public Git repositories</a></span></dt><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#cleaning-up-history">Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#interactive-rebase">Using interactive rebases</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-With-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="section"><a href="#advanced-branch-management">Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote-tracking branches</a></span></dt></dl></dd><dt><span class="section"><a href="#git-concepts">Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="section"><a href="#submodules">Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#_pitfalls_with_submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="section"><a href="#low-level-operations">Low-level Git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="section"><a href="#hacking-git">Hacking Git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git’s source code</a></span></dt></dl></dd><dt><span class="section"><a href="#glossary">Git Glossary</a></span></dt><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt></dl></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX +<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Git User Manual</title><link rel="stylesheet" type="text/css" href="docbook-xsl.css"><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div lang="en" class="article"><div class="titlepage"><div><div><h2 class="title"><a name="idp50258128"></a>Git User Manual</h2></div></div><hr></div><div class="toc"><p><b>Table of Contents</b></p><dl class="toc"><dt><span class="section"><a href="#repositories-and-branches">Repositories and Branches</a></span></dt><dd><dl><dt><span class="section"><a href="#how-to-get-a-git-repository">How to get a Git repository</a></span></dt><dt><span class="section"><a href="#how-to-check-out">How to check out a different version of a project</a></span></dt><dt><span class="section"><a href="#understanding-commits">Understanding History: Commits</a></span></dt><dt><span class="section"><a href="#manipulating-branches">Manipulating branches</a></span></dt><dt><span class="section"><a href="#detached-head">Examining an old version without creating a new branch</a></span></dt><dt><span class="section"><a href="#examining-remote-branches">Examining branches from a remote repository</a></span></dt><dt><span class="section"><a href="#how-git-stores-references">Naming branches, tags, and other references</a></span></dt><dt><span class="section"><a href="#Updating-a-repository-With-git-fetch">Updating a repository with git fetch</a></span></dt><dt><span class="section"><a href="#fetching-branches">Fetching branches from other repositories</a></span></dt></dl></dd><dt><span class="section"><a href="#exploring-git-history">Exploring Git history</a></span></dt><dd><dl><dt><span class="section"><a href="#using-bisect">How to use bisect to find a regression</a></span></dt><dt><span class="section"><a href="#naming-commits">Naming commits</a></span></dt><dt><span class="section"><a href="#creating-tags">Creating tags</a></span></dt><dt><span class="section"><a href="#browsing-revisions">Browsing revisions</a></span></dt><dt><span class="section"><a href="#generating-diffs">Generating diffs</a></span></dt><dt><span class="section"><a href="#viewing-old-file-versions">Viewing old file versions</a></span></dt><dt><span class="section"><a href="#history-examples">Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#Developing-With-git">Developing with Git</a></span></dt><dd><dl><dt><span class="section"><a href="#telling-git-your-name">Telling Git your name</a></span></dt><dt><span class="section"><a href="#creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#how-to-make-a-commit">How to make a commit</a></span></dt><dt><span class="section"><a href="#creating-good-commit-messages">Creating good commit messages</a></span></dt><dt><span class="section"><a href="#ignoring-files">Ignoring files</a></span></dt><dt><span class="section"><a href="#how-to-merge">How to merge</a></span></dt><dt><span class="section"><a href="#resolving-a-merge">Resolving a merge</a></span></dt><dt><span class="section"><a href="#undoing-a-merge">Undoing a merge</a></span></dt><dt><span class="section"><a href="#fast-forwards">Fast-forward merges</a></span></dt><dt><span class="section"><a href="#fixing-mistakes">Fixing mistakes</a></span></dt><dt><span class="section"><a href="#ensuring-good-performance">Ensuring good performance</a></span></dt><dt><span class="section"><a href="#ensuring-reliability">Ensuring reliability</a></span></dt></dl></dd><dt><span class="section"><a href="#sharing-development">Sharing development with others</a></span></dt><dd><dl><dt><span class="section"><a href="#getting-updates-With-git-pull">Getting updates with git pull</a></span></dt><dt><span class="section"><a href="#submitting-patches">Submitting patches to a project</a></span></dt><dt><span class="section"><a href="#importing-patches">Importing patches to a project</a></span></dt><dt><span class="section"><a href="#public-repositories">Public Git repositories</a></span></dt><dt><span class="section"><a href="#sharing-development-examples">Examples</a></span></dt></dl></dd><dt><span class="section"><a href="#cleaning-up-history">Rewriting history and maintaining patch series</a></span></dt><dd><dl><dt><span class="section"><a href="#patch-series">Creating the perfect patch series</a></span></dt><dt><span class="section"><a href="#using-git-rebase">Keeping a patch series up to date using git rebase</a></span></dt><dt><span class="section"><a href="#rewriting-one-commit">Rewriting a single commit</a></span></dt><dt><span class="section"><a href="#reordering-patch-series">Reordering or selecting from a patch series</a></span></dt><dt><span class="section"><a href="#interactive-rebase">Using interactive rebases</a></span></dt><dt><span class="section"><a href="#patch-series-tools">Other tools</a></span></dt><dt><span class="section"><a href="#problems-With-rewriting-history">Problems with rewriting history</a></span></dt><dt><span class="section"><a href="#bisect-merges">Why bisecting merge commits can be harder than bisecting linear history</a></span></dt></dl></dd><dt><span class="section"><a href="#advanced-branch-management">Advanced branch management</a></span></dt><dd><dl><dt><span class="section"><a href="#fetching-individual-branches">Fetching individual branches</a></span></dt><dt><span class="section"><a href="#fetch-fast-forwards">git fetch and fast-forwards</a></span></dt><dt><span class="section"><a href="#forcing-fetch">Forcing git fetch to do non-fast-forward updates</a></span></dt><dt><span class="section"><a href="#remote-branch-configuration">Configuring remote-tracking branches</a></span></dt></dl></dd><dt><span class="section"><a href="#git-concepts">Git concepts</a></span></dt><dd><dl><dt><span class="section"><a href="#the-object-database">The Object Database</a></span></dt><dt><span class="section"><a href="#the-index">The index</a></span></dt></dl></dd><dt><span class="section"><a href="#submodules">Submodules</a></span></dt><dd><dl><dt><span class="section"><a href="#_pitfalls_with_submodules">Pitfalls with submodules</a></span></dt></dl></dd><dt><span class="section"><a href="#low-level-operations">Low-level Git operations</a></span></dt><dd><dl><dt><span class="section"><a href="#object-manipulation">Object access and manipulation</a></span></dt><dt><span class="section"><a href="#the-workflow">The Workflow</a></span></dt><dt><span class="section"><a href="#examining-the-data">Examining the data</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees">Merging multiple trees</a></span></dt><dt><span class="section"><a href="#merging-multiple-trees-2">Merging multiple trees, continued</a></span></dt></dl></dd><dt><span class="section"><a href="#hacking-git">Hacking Git</a></span></dt><dd><dl><dt><span class="section"><a href="#object-details">Object storage format</a></span></dt><dt><span class="section"><a href="#birdview-on-the-source-code">A birds-eye view of Git’s source code</a></span></dt></dl></dd><dt><span class="section"><a href="#glossary">Git Glossary</a></span></dt><dt><span class="appendix"><a href="#git-quick-start">A. Git Quick Reference</a></span></dt><dd><dl><dt><span class="section"><a href="#quick-creating-a-new-repository">Creating a new repository</a></span></dt><dt><span class="section"><a href="#managing-branches">Managing branches</a></span></dt><dt><span class="section"><a href="#exploring-history">Exploring history</a></span></dt><dt><span class="section"><a href="#making-changes">Making changes</a></span></dt><dt><span class="section"><a href="#merging">Merging</a></span></dt><dt><span class="section"><a href="#sharing-your-changes">Sharing your changes</a></span></dt><dt><span class="section"><a href="#repository-maintenance">Repository maintenance</a></span></dt></dl></dd><dt><span class="appendix"><a href="#todo">B. Notes and todo list for this manual</a></span></dt></dl></div><p>Git is a fast distributed revision control system.</p><p>This manual is designed to be readable by someone with basic UNIX command-line skills, but no previous knowledge of Git.</p><p><a class="xref" href="#repositories-and-branches" title="Repositories and Branches">the section called “Repositories and Branches”</a> and <a class="xref" href="#exploring-git-history" title="Exploring Git history">the section called “Exploring Git history”</a> explain how to fetch and study a project using git—read these chapters to learn how to build and test a particular version of a software project, search for @@ -9,7 +9,7 @@ <code class="literal">git clone <repo></code>, you can either use:</p><pre class="literallayout">$ man git-clone</pre><p>or:</p><pre class="literallayout">$ git help clone</pre><p>With the latter, you can use the manual viewer of your choice; see <a class="ulink" href="git-help.html" target="_top">git-help(1)</a> for more information.</p><p>See also <a class="xref" href="#git-quick-start" title="A. Git Quick Reference">Appendix A, <i>Git Quick Reference</i></a> for a brief overview of Git commands, without any explanation.</p><p>Finally, see <a class="xref" href="#todo" title="B. Notes and todo list for this manual">Appendix B, <i>Notes and todo list for this manual</i></a> for ways that you can help make this manual more -complete.</p><div class="section" title="Repositories and Branches"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="repositories-and-branches"></a>Repositories and Branches</h2></div></div></div><div class="section" title="How to get a Git repository"><div class="titlepage"><div><div><h3 class="title"><a name="how-to-get-a-git-repository"></a>How to get a Git repository</h3></div></div></div><p>It will be useful to have a Git repository to experiment with as you +complete.</p><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="repositories-and-branches"></a>Repositories and Branches</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="how-to-get-a-git-repository"></a>How to get a Git repository</h3></div></div></div><p>It will be useful to have a Git repository to experiment with as you read this manual.</p><p>The best way to get one is by using the <a class="ulink" href="git-clone.html" target="_top">git-clone(1)</a> command to download a copy of an existing repository. If you don’t already have a project in mind, here are some interesting examples:</p><pre class="literallayout"> # Git itself (approx. 40MB download): @@ -21,7 +21,7 @@ directory, you will see that it contains a copy of the project files, called the <a class="link" href="#def_working_tree">working tree</a>, together with a special top-level directory named <code class="literal">.git</code>, which contains all the information -about the history of the project.</p></div><div class="section" title="How to check out a different version of a project"><div class="titlepage"><div><div><h3 class="title"><a name="how-to-check-out"></a>How to check out a different version of a project</h3></div></div></div><p>Git is best thought of as a tool for storing the history of a collection +about the history of the project.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="how-to-check-out"></a>How to check out a different version of a project</h3></div></div></div><p>Git is best thought of as a tool for storing the history of a collection of files. It stores the history as a compressed collection of interrelated snapshots of the project’s contents. In Git each such version is called a <a class="link" href="#def_commit">commit</a>.</p><p>Those snapshots aren’t necessarily all arranged in a single line from @@ -55,7 +55,7 @@ the current branch to point at v2.6.17 instead, with</p><pre class="literallayout">$ git reset --hard v2.6.17</pre><p>Note that if the current branch head was your only reference to a particular point in history, then resetting that branch may leave you with no way to find the history it used to point to; so use this command -carefully.</p></div><div class="section" title="Understanding History: Commits"><div class="titlepage"><div><div><h3 class="title"><a name="understanding-commits"></a>Understanding History: Commits</h3></div></div></div><p>Every change in the history of a project is represented by a commit. +carefully.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="understanding-commits"></a>Understanding History: Commits</h3></div></div></div><p>Every change in the history of a project is represented by a commit. The <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> command shows the most recent commit on the current branch:</p><pre class="literallayout">$ git show commit 17cf781661e6d38f737f15f53ab552f1e95960d7 @@ -90,7 +90,7 @@ contents of the commit, you are guaranteed that the commit can never change without its name also changing.</p><p>In fact, in <a class="xref" href="#git-concepts" title="Git concepts">the section called “Git concepts”</a> we shall see that everything stored in Git history, including file data and directory contents, is stored in an object -with a name that is a hash of its contents.</p><div class="section" title="Understanding history: commits, parents, and reachability"><div class="titlepage"><div><div><h4 class="title"><a name="understanding-reachability"></a>Understanding history: commits, parents, and reachability</h4></div></div></div><p>Every commit (except the very first commit in a project) also has a +with a name that is a hash of its contents.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="understanding-reachability"></a>Understanding history: commits, parents, and reachability</h4></div></div></div><p>Every commit (except the very first commit in a project) also has a parent commit which shows what happened before this commit. Following the chain of parents will eventually take you back to the beginning of the project.</p><p>However, the commits do not form a simple list; Git allows lines of @@ -103,21 +103,21 @@ commits will help understand how Git organizes history.</p><p>In the following, we say that commit X is "reachable" from commit Y if commit X is an ancestor of commit Y. Equivalently, you could say that Y is a descendant of X, or that there is a chain of parents -leading from commit Y to commit X.</p></div><div class="section" title="Understanding history: History diagrams"><div class="titlepage"><div><div><h4 class="title"><a name="history-diagrams"></a>Understanding history: History diagrams</h4></div></div></div><p>We will sometimes represent Git history using diagrams like the one +leading from commit Y to commit X.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="history-diagrams"></a>Understanding history: History diagrams</h4></div></div></div><p>We will sometimes represent Git history using diagrams like the one below. Commits are shown as "o", and the links between them with lines drawn with - / and \. Time goes left to right:</p><pre class="literallayout"> o--o--o <-- Branch A / o--o--o <-- master \ o--o--o <-- Branch B</pre><p>If we need to talk about a particular commit, the character "o" may -be replaced with another letter or number.</p></div><div class="section" title="Understanding history: What is a branch?"><div class="titlepage"><div><div><h4 class="title"><a name="what-is-a-branch"></a>Understanding history: What is a branch?</h4></div></div></div><p>When we need to be precise, we will use the word "branch" to mean a line +be replaced with another letter or number.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="what-is-a-branch"></a>Understanding history: What is a branch?</h4></div></div></div><p>When we need to be precise, we will use the word "branch" to mean a line of development, and "branch head" (or just "head") to mean a reference to the most recent commit on a branch. In the example above, the branch head named "A" is a pointer to one particular commit, but we refer to the line of three commits leading up to that point as all being part of "branch A".</p><p>However, when no confusion will result, we often just use the term -"branch" both for branches and for branch heads.</p></div></div><div class="section" title="Manipulating branches"><div class="titlepage"><div><div><h3 class="title"><a name="manipulating-branches"></a>Manipulating branches</h3></div></div></div><p>Creating, deleting, and modifying branches is quick and easy; here’s -a summary of the commands:</p><div class="variablelist"><dl><dt><span class="term"> +"branch" both for branches and for branch heads.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="manipulating-branches"></a>Manipulating branches</h3></div></div></div><p>Creating, deleting, and modifying branches is quick and easy; here’s +a summary of the commands:</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"> <code class="literal">git branch</code> </span></dt><dd> list all branches. @@ -155,7 +155,7 @@ </dd></dl></div><p>The special symbol "HEAD" can always be used to refer to the current branch. In fact, Git uses a file named <code class="literal">HEAD</code> in the <code class="literal">.git</code> directory to remember which branch is current:</p><pre class="literallayout">$ cat .git/HEAD -ref: refs/heads/master</pre></div><div class="section" title="Examining an old version without creating a new branch"><div class="titlepage"><div><div><h3 class="title"><a name="detached-head"></a>Examining an old version without creating a new branch</h3></div></div></div><p>The <code class="literal">git checkout</code> command normally expects a branch head, but will also +ref: refs/heads/master</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="detached-head"></a>Examining an old version without creating a new branch</h3></div></div></div><p>The <code class="literal">git checkout</code> command normally expects a branch head, but will also accept an arbitrary commit; for example, you can check out the commit referenced by a tag:</p><pre class="literallayout">$ git checkout v2.6.17 Note: checking out 'v2.6.17'. @@ -176,7 +176,7 @@ * (detached from v2.6.17) master</pre><p>In this case we say that the HEAD is "detached".</p><p>This is an easy way to check out a particular version without having to make up a name for the new branch. You can still create a new branch -(or tag) for this version later if you decide to.</p></div><div class="section" title="Examining branches from a remote repository"><div class="titlepage"><div><div><h3 class="title"><a name="examining-remote-branches"></a>Examining branches from a remote repository</h3></div></div></div><p>The "master" branch that was created at the time you cloned is a copy +(or tag) for this version later if you decide to.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="examining-remote-branches"></a>Examining branches from a remote repository</h3></div></div></div><p>The "master" branch that was created at the time you cloned is a copy of the HEAD in the repository that you cloned from. That repository may also have had other branches, though, and your local repository keeps branches which track each of those remote branches, called @@ -197,10 +197,10 @@ <a class="xref" href="#Updating-a-repository-With-git-fetch" title="Updating a repository with git fetch">the section called “Updating a repository with git fetch”</a> for details.</p><p>You might want to build on one of these remote-tracking branches on a branch of your own, just as you would for a tag:</p><pre class="literallayout">$ git checkout -b my-todo-copy origin/todo</pre><p>You can also check out <code class="literal">origin/todo</code> directly to examine it or write a one-off patch. See <a class="link" href="#detached-head" title="Examining an old version without creating a new branch">detached head</a>.</p><p>Note that the name "origin" is just the name that Git uses by default -to refer to the repository that you cloned from.</p></div><div class="section" title="Naming branches, tags, and other references"><div class="titlepage"><div><div><h3 class="title"><a name="how-git-stores-references"></a>Naming branches, tags, and other references</h3></div></div></div><p>Branches, remote-tracking branches, and tags are all references to +to refer to the repository that you cloned from.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="how-git-stores-references"></a>Naming branches, tags, and other references</h3></div></div></div><p>Branches, remote-tracking branches, and tags are all references to commits. All references are named with a slash-separated path name starting with <code class="literal">refs</code>; the names we’ve been using so far are actually -shorthand:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +shorthand:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> The branch <code class="literal">test</code> is short for <code class="literal">refs/heads/test</code>. </li><li class="listitem"> The tag <code class="literal">v2.6.18</code> is short for <code class="literal">refs/tags/v2.6.18</code>. @@ -215,11 +215,11 @@ is usually a shortcut for the HEAD branch in the repository "origin".</p><p>For the complete list of paths which Git checks for references, and the order it uses to decide which to choose when there are multiple references with the same shorthand name, see the "SPECIFYING -REVISIONS" section of <a class="ulink" href="gitrevisions.html" target="_top">gitrevisions(7)</a>.</p></div><div class="section" title="Updating a repository with git fetch"><div class="titlepage"><div><div><h3 class="title"><a name="Updating-a-repository-With-git-fetch"></a>Updating a repository with git fetch</h3></div></div></div><p>After you clone a repository and commit a few changes of your own, you +REVISIONS" section of <a class="ulink" href="gitrevisions.html" target="_top">gitrevisions(7)</a>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="Updating-a-repository-With-git-fetch"></a>Updating a repository with git fetch</h3></div></div></div><p>After you clone a repository and commit a few changes of your own, you may wish to check the original repository for updates.</p><p>The <code class="literal">git-fetch</code> command, with no arguments, will update all of the remote-tracking branches to the latest version found in the original repository. It will not touch any of your own branches—not even the -"master" branch that was created for you on clone.</p></div><div class="section" title="Fetching branches from other repositories"><div class="titlepage"><div><div><h3 class="title"><a name="fetching-branches"></a>Fetching branches from other repositories</h3></div></div></div><p>You can also track branches from repositories other than the one you +"master" branch that was created for you on clone.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="fetching-branches"></a>Fetching branches from other repositories</h3></div></div></div><p>You can also track branches from repositories other than the one you cloned from, using <a class="ulink" href="git-remote.html" target="_top">git-remote(1)</a>:</p><pre class="literallayout">$ git remote add staging git://git.kernel.org/.../gregkh/staging.git $ git fetch staging ... @@ -242,12 +242,12 @@ ...</pre><p>This is what causes Git to track the remote’s branches; you may modify or delete these configuration options by editing <code class="literal">.git/config</code> with a text editor. (See the "CONFIGURATION FILE" section of -<a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for details.)</p></div></div><div class="section" title="Exploring Git history"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="exploring-git-history"></a>Exploring Git history</h2></div></div></div><p>Git is best thought of as a tool for storing the history of a +<a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for details.)</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="exploring-git-history"></a>Exploring Git history</h2></div></div></div><p>Git is best thought of as a tool for storing the history of a collection of files. It does this by storing compressed snapshots of the contents of a file hierarchy, together with "commits" which show the relationships between these snapshots.</p><p>Git provides extremely flexible and fast tools for exploring the history of a project.</p><p>We start with one specialized tool that is useful for finding the -commit that introduced a bug into a project.</p><div class="section" title="How to use bisect to find a regression"><div class="titlepage"><div><div><h3 class="title"><a name="using-bisect"></a>How to use bisect to find a regression</h3></div></div></div><p>Suppose version 2.6.18 of your project worked, but the version at +commit that introduced a bug into a project.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="using-bisect"></a>How to use bisect to find a regression</h3></div></div></div><p>Suppose version 2.6.18 of your project worked, but the version at "master" crashes. Sometimes the best way to find the cause of such a regression is to perform a brute-force search through the project’s history to find the particular commit that caused the problem. The @@ -280,7 +280,7 @@ bad one between some first skipped commits and a later bad commit.</p><p>There are also ways to automate the bisecting process if you have a test script that can tell a good from a bad commit. See <a class="ulink" href="git-bisect.html" target="_top">git-bisect(1)</a> for more information about this and other <code class="literal">git -bisect</code> features.</p></div><div class="section" title="Naming commits"><div class="titlepage"><div><div><h3 class="title"><a name="naming-commits"></a>Naming commits</h3></div></div></div><p>We have seen several ways of naming commits already:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +bisect</code> features.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="naming-commits"></a>Naming commits</h3></div></div></div><p>We have seen several ways of naming commits already:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> 40-hexdigit object name </li><li class="listitem"> branch name: refers to the commit at the head of the given @@ -310,11 +310,11 @@ branch.</p><p>The <a class="ulink" href="git-rev-parse.html" target="_top">git-rev-parse(1)</a> command is a low-level command that is occasionally useful for translating some name for a commit to the object name for that commit:</p><pre class="literallayout">$ git rev-parse origin -e05db0fd4f31dde7005f075a84f96b360d05984b</pre></div><div class="section" title="Creating tags"><div class="titlepage"><div><div><h3 class="title"><a name="creating-tags"></a>Creating tags</h3></div></div></div><p>We can also create a tag to refer to a particular commit; after +e05db0fd4f31dde7005f075a84f96b360d05984b</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="creating-tags"></a>Creating tags</h3></div></div></div><p>We can also create a tag to refer to a particular commit; after running</p><pre class="literallayout">$ git tag stable-1 1b2e1d63ff</pre><p>You can use <code class="literal">stable-1</code> to refer to the commit 1b2e1d63ff.</p><p>This creates a "lightweight" tag. If you would also like to include a comment with the tag, and possibly sign it cryptographically, then you should create a tag object instead; see the <a class="ulink" href="git-tag.html" target="_top">git-tag(1)</a> man page -for details.</p></div><div class="section" title="Browsing revisions"><div class="titlepage"><div><div><h3 class="title"><a name="browsing-revisions"></a>Browsing revisions</h3></div></div></div><p>The <a class="ulink" href="git-log.html" target="_top">git-log(1)</a> command can show lists of commits. On its +for details.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="browsing-revisions"></a>Browsing revisions</h3></div></div></div><p>The <a class="ulink" href="git-log.html" target="_top">git-log(1)</a> command can show lists of commits. On its own, it shows all commits reachable from the parent commit; but you can also make more specific requests:</p><pre class="literallayout">$ git log v2.5.. # commits since (not reachable from) v2.5 $ git log test..master # commits reachable from master but not test @@ -330,19 +330,19 @@ display options.</p><p>Note that git log starts with the most recent commit and works backwards through the parents; however, since Git history can contain multiple independent lines of development, the particular order that -commits are listed in may be somewhat arbitrary.</p></div><div class="section" title="Generating diffs"><div class="titlepage"><div><div><h3 class="title"><a name="generating-diffs"></a>Generating diffs</h3></div></div></div><p>You can generate diffs between any two versions using +commits are listed in may be somewhat arbitrary.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="generating-diffs"></a>Generating diffs</h3></div></div></div><p>You can generate diffs between any two versions using <a class="ulink" href="git-diff.html" target="_top">git-diff(1)</a>:</p><pre class="literallayout">$ git diff master..test</pre><p>That will produce the diff between the tips of the two branches. If you’d prefer to find the diff from their common ancestor to test, you can use three dots instead of two:</p><pre class="literallayout">$ git diff master...test</pre><p>Sometimes what you want instead is a set of patches; for this you can use <a class="ulink" href="git-format-patch.html" target="_top">git-format-patch(1)</a>:</p><pre class="literallayout">$ git format-patch master..test</pre><p>will generate a file with a patch for each commit reachable from test -but not from master.</p></div><div class="section" title="Viewing old file versions"><div class="titlepage"><div><div><h3 class="title"><a name="viewing-old-file-versions"></a>Viewing old file versions</h3></div></div></div><p>You can always view an old version of a file by just checking out the +but not from master.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="viewing-old-file-versions"></a>Viewing old file versions</h3></div></div></div><p>You can always view an old version of a file by just checking out the correct revision first. But sometimes it is more convenient to be able to view an old version of a single file without checking anything out; this command does that:</p><pre class="literallayout">$ git show v2.5:fs/locks.c</pre><p>Before the colon may be anything that names a commit, and after it -may be any path to a file tracked by Git.</p></div><div class="section" title="Examples"><div class="titlepage"><div><div><h3 class="title"><a name="history-examples"></a>Examples</h3></div></div></div><div class="section" title="Counting the number of commits on a branch"><div class="titlepage"><div><div><h4 class="title"><a name="counting-commits-on-a-branch"></a>Counting the number of commits on a branch</h4></div></div></div><p>Suppose you want to know how many commits you’ve made on <code class="literal">mybranch</code> +may be any path to a file tracked by Git.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="history-examples"></a>Examples</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="counting-commits-on-a-branch"></a>Counting the number of commits on a branch</h4></div></div></div><p>Suppose you want to know how many commits you’ve made on <code class="literal">mybranch</code> since it diverged from <code class="literal">origin</code>:</p><pre class="literallayout">$ git log --pretty=oneline origin..mybranch | wc -l</pre><p>Alternatively, you may often see this sort of thing done with the lower-level command <a class="ulink" href="git-rev-list.html" target="_top">git-rev-list(1)</a>, which just lists the SHA-1’s -of all the given commits:</p><pre class="literallayout">$ git rev-list origin..mybranch | wc -l</pre></div><div class="section" title="Check whether two branches point at the same history"><div class="titlepage"><div><div><h4 class="title"><a name="checking-for-equal-branches"></a>Check whether two branches point at the same history</h4></div></div></div><p>Suppose you want to check whether two branches point at the same point +of all the given commits:</p><pre class="literallayout">$ git rev-list origin..mybranch | wc -l</pre></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="checking-for-equal-branches"></a>Check whether two branches point at the same history</h4></div></div></div><p>Suppose you want to check whether two branches point at the same point in history.</p><pre class="literallayout">$ git diff origin..master</pre><p>will tell you whether the contents of the project are the same at the two branches; in theory, however, it’s possible that the same project contents could have been arrived at by two different historical @@ -351,7 +351,7 @@ $ git rev-list master e05db0fd4f31dde7005f075a84f96b360d05984b</pre><p>Or you could recall that the <code class="literal">...</code> operator selects all commits reachable from either one reference or the other but not -both; so</p><pre class="literallayout">$ git log origin...master</pre><p>will return no commits when the two branches are equal.</p></div><div class="section" title="Find first tagged version including a given fix"><div class="titlepage"><div><div><h4 class="title"><a name="finding-tagged-descendants"></a>Find first tagged version including a given fix</h4></div></div></div><p>Suppose you know that the commit e05db0fd fixed a certain problem. +both; so</p><pre class="literallayout">$ git log origin...master</pre><p>will return no commits when the two branches are equal.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="finding-tagged-descendants"></a>Find first tagged version including a given fix</h4></div></div></div><p>Suppose you know that the commit e05db0fd fixed a certain problem. You’d like to find the earliest tagged release that contains that fix.</p><p>Of course, there may be more than one answer—if the history branched after commit e05db0fd, then there could be multiple "earliest" tagged @@ -378,7 +378,7 @@ ! [v1.5.0-rc2] GIT v1.5.0-rc2 ...</pre><p>then a line like</p><pre class="literallayout">+ ++ [e05db0fd] Fix warnings in sha1_file.c - use C99 printf format if available</pre><p>shows that e05db0fd is reachable from itself, from v1.5.0-rc1, -and from v1.5.0-rc2, and not from v1.5.0-rc0.</p></div><div class="section" title="Showing commits unique to a given branch"><div class="titlepage"><div><div><h4 class="title"><a name="showing-commits-unique-to-a-branch"></a>Showing commits unique to a given branch</h4></div></div></div><p>Suppose you would like to see all the commits reachable from the branch +and from v1.5.0-rc2, and not from v1.5.0-rc0.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="showing-commits-unique-to-a-branch"></a>Showing commits unique to a given branch</h4></div></div></div><p>Suppose you would like to see all the commits reachable from the branch head named <code class="literal">master</code> but not from any other head in your repository.</p><p>We can list all the heads in this repository with <a class="ulink" href="git-show-ref.html" target="_top">git-show-ref(1)</a>:</p><pre class="literallayout">$ git show-ref --heads bf62196b5e363d73353a9dcf094c59595f3153b7 refs/heads/core-tutorial @@ -394,7 +394,7 @@ but not from these other heads:</p><pre class="literallayout">$ gitk master --not $( git show-ref --heads | cut -d' ' -f2 | grep -v '^refs/heads/master' )</pre><p>Obviously, endless variations are possible; for example, to see all commits reachable from some head but not from any tag in the repository:</p><pre class="literallayout">$ gitk $( git show-ref --heads ) --not $( git show-ref --tags )</pre><p>(See <a class="ulink" href="gitrevisions.html" target="_top">gitrevisions(7)</a> for explanations of commit-selecting -syntax such as <code class="literal">--not</code>.)</p></div><div class="section" title="Creating a changelog and tarball for a software release"><div class="titlepage"><div><div><h4 class="title"><a name="making-a-release"></a>Creating a changelog and tarball for a software release</h4></div></div></div><p>The <a class="ulink" href="git-archive.html" target="_top">git-archive(1)</a> command can create a tar or zip archive from +syntax such as <code class="literal">--not</code>.)</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="making-a-release"></a>Creating a changelog and tarball for a software release</h4></div></div></div><p>The <a class="ulink" href="git-archive.html" target="_top">git-archive(1)</a> command can create a tar or zip archive from any version of a project; for example:</p><pre class="literallayout">$ git archive -o latest.tar.gz --prefix=project/ HEAD</pre><p>will use HEAD to produce a gzipped tar archive in which each filename is preceded by <code class="literal">project/</code>. The output file format is inferred from the output file extension if possible, see <a class="ulink" href="git-archive.html" target="_top">git-archive(1)</a> for @@ -412,25 +412,25 @@ echo "git log --no-merges v$new ^v$last > ../ChangeLog-$new" echo "git shortlog --no-merges v$new ^v$last > ../ShortLog" echo "git diff --stat --summary -M v$last v$new > ../diffstat-$new"</pre><p>and then he just cut-and-pastes the output commands after verifying that -they look OK.</p></div><div class="section" title="Finding commits referencing a file with given content"><div class="titlepage"><div><div><h4 class="title"><a name="Finding-commits-With-given-Content"></a>Finding commits referencing a file with given content</h4></div></div></div><p>Somebody hands you a copy of a file, and asks which commits modified a +they look OK.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="Finding-commits-With-given-Content"></a>Finding commits referencing a file with given content</h4></div></div></div><p>Somebody hands you a copy of a file, and asks which commits modified a file such that it contained the given content either before or after the commit. You can find out with this:</p><pre class="literallayout">$ git log --raw --abbrev=40 --pretty=oneline | grep -B 1 `git hash-object filename`</pre><p>Figuring out why this works is left as an exercise to the (advanced) student. The <a class="ulink" href="git-log.html" target="_top">git-log(1)</a>, <a class="ulink" href="git-diff-tree.html" target="_top">git-diff-tree(1)</a>, and -<a class="ulink" href="git-hash-object.html" target="_top">git-hash-object(1)</a> man pages may prove helpful.</p></div></div></div><div class="section" title="Developing with Git"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Developing-With-git"></a>Developing with Git</h2></div></div></div><div class="section" title="Telling Git your name"><div class="titlepage"><div><div><h3 class="title"><a name="telling-git-your-name"></a>Telling Git your name</h3></div></div></div><p>Before creating any commits, you should introduce yourself to Git. +<a class="ulink" href="git-hash-object.html" target="_top">git-hash-object(1)</a> man pages may prove helpful.</p></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="Developing-With-git"></a>Developing with Git</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="telling-git-your-name"></a>Telling Git your name</h3></div></div></div><p>Before creating any commits, you should introduce yourself to Git. The easiest way to do so is to use <a class="ulink" href="git-config.html" target="_top">git-config(1)</a>:</p><pre class="literallayout">$ git config --global user.name 'Your Name Comes Here' $ git config --global user.email 'you@yourdomain.example.com'</pre><p>Which will add the following to a file named <code class="literal">.gitconfig</code> in your home directory:</p><pre class="literallayout">[user] name = Your Name Comes Here email = you@yourdomain.example.com</pre><p>See the "CONFIGURATION FILE" section of <a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for details on the configuration file. The file is plain text, so you can -also edit it with your favorite editor.</p></div><div class="section" title="Creating a new repository"><div class="titlepage"><div><div><h3 class="title"><a name="creating-a-new-repository"></a>Creating a new repository</h3></div></div></div><p>Creating a new repository from scratch is very easy:</p><pre class="literallayout">$ mkdir project +also edit it with your favorite editor.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="creating-a-new-repository"></a>Creating a new repository</h3></div></div></div><p>Creating a new repository from scratch is very easy:</p><pre class="literallayout">$ mkdir project $ cd project $ git init</pre><p>If you have some initial content (say, a tarball):</p><pre class="literallayout">$ tar xzvf project.tar.gz $ cd project $ git init $ git add . # include everything below ./ in the first commit: -$ git commit</pre></div><div class="section" title="How to make a commit"><div class="titlepage"><div><div><h3 class="title"><a name="how-to-make-a-commit"></a>How to make a commit</h3></div></div></div><p>Creating a new commit takes three steps:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> +$ git commit</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="how-to-make-a-commit"></a>How to make a commit</h3></div></div></div><p>Creating a new commit takes three steps:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> Making some changes to the working directory using your favorite editor. </li><li class="listitem"> @@ -460,14 +460,14 @@ $ git status # a brief per-file summary of the above.</pre><p>You can also use <a class="ulink" href="git-gui.html" target="_top">git-gui(1)</a> to create commits, view changes in the index and the working tree files, and individually select diff hunks for inclusion in the index (by right-clicking on the diff hunk and -choosing "Stage Hunk For Commit").</p></div><div class="section" title="Creating good commit messages"><div class="titlepage"><div><div><h3 class="title"><a name="creating-good-commit-messages"></a>Creating good commit messages</h3></div></div></div><p>Though not required, it’s a good idea to begin the commit message +choosing "Stage Hunk For Commit").</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="creating-good-commit-messages"></a>Creating good commit messages</h3></div></div></div><p>Though not required, it’s a good idea to begin the commit message with a single short (less than 50 character) line summarizing the change, followed by a blank line and then a more thorough description. The text up to the first blank line in a commit message is treated as the commit title, and that title is used throughout Git. For example, <a class="ulink" href="git-format-patch.html" target="_top">git-format-patch(1)</a> turns a commit into email, and it uses the title on the Subject line and the -rest of the commit in the body.</p></div><div class="section" title="Ignoring files"><div class="titlepage"><div><div><h3 class="title"><a name="ignoring-files"></a>Ignoring files</h3></div></div></div><p>A project will often generate files that you do <span class="emphasis"><em>not</em></span> want to track with Git. +rest of the commit in the body.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="ignoring-files"></a>Ignoring files</h3></div></div></div><p>A project will often generate files that you do <span class="emphasis"><em>not</em></span> want to track with Git. This typically includes files generated by a build process or temporary backup files made by your editor. Of course, <span class="emphasis"><em>not</em></span> tracking files with Git is just a matter of <span class="emphasis"><em>not</em></span> calling <code class="literal">git add</code> on them. But it quickly becomes @@ -494,7 +494,7 @@ them in a file in your repository named <code class="literal">.git/info/exclude</code>, or in any file specified by the <code class="literal">core.excludesfile</code> configuration variable. Some Git commands can also take exclude patterns directly on the -command line. See <a class="ulink" href="gitignore.html" target="_top">gitignore(5)</a> for the details.</p></div><div class="section" title="How to merge"><div class="titlepage"><div><div><h3 class="title"><a name="how-to-merge"></a>How to merge</h3></div></div></div><p>You can rejoin two diverging branches of development using +command line. See <a class="ulink" href="gitignore.html" target="_top">gitignore(5)</a> for the details.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="how-to-merge"></a>How to merge</h3></div></div></div><p>You can rejoin two diverging branches of development using <a class="ulink" href="git-merge.html" target="_top">git-merge(1)</a>:</p><pre class="literallayout">$ git merge branchname</pre><p>merges the development in the branch <code class="literal">branchname</code> into the current branch.</p><p>A merge is made by combining the changes made in <code class="literal">branchname</code> and the changes made up to the latest commit in your current branch since @@ -519,7 +519,7 @@ with the contents and run Git commit, as you normally would when creating a new file.</p><p>If you examine the resulting commit using gitk, you will see that it has two parents, one pointing to the top of the current branch, and -one to the top of the other branch.</p></div><div class="section" title="Resolving a merge"><div class="titlepage"><div><div><h3 class="title"><a name="resolving-a-merge"></a>Resolving a merge</h3></div></div></div><p>When a merge isn’t resolved automatically, Git leaves the index and +one to the top of the other branch.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="resolving-a-merge"></a>Resolving a merge</h3></div></div></div><p>When a merge isn’t resolved automatically, Git leaves the index and the working tree in a special state that gives you all the information you need to help resolve the merge.</p><p>Files with conflicts are marked specially in the index, so until you resolve the problem and update the index, <a class="ulink" href="git-commit.html" target="_top">git-commit(1)</a> will @@ -534,7 +534,7 @@ some information about the merge. Normally you can just use this default message unchanged, but you may add additional commentary of your own if desired.</p><p>The above is all you need to know to resolve a simple merge. But Git -also provides more information to help resolve conflicts:</p><div class="section" title="Getting conflict-resolution help during a merge"><div class="titlepage"><div><div><h4 class="title"><a name="conflict-resolution"></a>Getting conflict-resolution help during a merge</h4></div></div></div><p>All of the changes that Git was able to merge automatically are +also provides more information to help resolve conflicts:</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="conflict-resolution"></a>Getting conflict-resolution help during a merge</h4></div></div></div><p>All of the changes that Git was able to merge automatically are already added to the index file, so <a class="ulink" href="git-diff.html" target="_top">git-diff(1)</a> shows only the conflicts. It uses an unusual syntax:</p><pre class="literallayout">$ git diff diff --cc file.txt @@ -584,18 +584,18 @@ $ gitk --merge</pre><p>These will display all commits which exist only on HEAD or on MERGE_HEAD, and which touch an unmerged file.</p><p>You may also use <a class="ulink" href="git-mergetool.html" target="_top">git-mergetool(1)</a>, which lets you merge the unmerged files using external tools such as Emacs or kdiff3.</p><p>Each time you resolve the conflicts in a file and update the index:</p><pre class="literallayout">$ git add file.txt</pre><p>the different stages of that file will be "collapsed", after which -<code class="literal">git diff</code> will (by default) no longer show diffs for that file.</p></div></div><div class="section" title="Undoing a merge"><div class="titlepage"><div><div><h3 class="title"><a name="undoing-a-merge"></a>Undoing a merge</h3></div></div></div><p>If you get stuck and decide to just give up and throw the whole mess +<code class="literal">git diff</code> will (by default) no longer show diffs for that file.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="undoing-a-merge"></a>Undoing a merge</h3></div></div></div><p>If you get stuck and decide to just give up and throw the whole mess away, you can always return to the pre-merge state with</p><pre class="literallayout">$ git reset --hard HEAD</pre><p>Or, if you’ve already committed the merge that you want to throw away,</p><pre class="literallayout">$ git reset --hard ORIG_HEAD</pre><p>However, this last command can be dangerous in some cases—never throw away a commit you have already committed if that commit may itself have been merged into another branch, as doing so may confuse -further merges.</p></div><div class="section" title="Fast-forward merges"><div class="titlepage"><div><div><h3 class="title"><a name="fast-forwards"></a>Fast-forward merges</h3></div></div></div><p>There is one special case not mentioned above, which is treated +further merges.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="fast-forwards"></a>Fast-forward merges</h3></div></div></div><p>There is one special case not mentioned above, which is treated differently. Normally, a merge results in a merge commit, with two parents, one pointing at each of the two lines of development that were merged.</p><p>However, if the current branch is a descendant of the other—so every commit present in the one is already contained in the other—then Git just performs a "fast-forward"; the head of the current branch is moved forward to point at the head of the merged-in branch, without any new -commits being created.</p></div><div class="section" title="Fixing mistakes"><div class="titlepage"><div><div><h3 class="title"><a name="fixing-mistakes"></a>Fixing mistakes</h3></div></div></div><p>If you’ve messed up the working tree, but haven’t yet committed your +commits being created.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="fixing-mistakes"></a>Fixing mistakes</h3></div></div></div><p>If you’ve messed up the working tree, but haven’t yet committed your mistake, you can return the entire working tree to the last committed state with</p><pre class="literallayout">$ git reset --hard HEAD</pre><p>If you make a commit that you later wish you hadn’t, there are two fundamentally different ways to fix the problem:</p><div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem"> @@ -608,13 +608,13 @@ Git does not normally expect the "history" of a project to change, and cannot correctly perform repeated merges from a branch that has had its history changed. -</li></ol></div><div class="section" title="Fixing a mistake with a new commit"><div class="titlepage"><div><div><h4 class="title"><a name="reverting-a-commit"></a>Fixing a mistake with a new commit</h4></div></div></div><p>Creating a new commit that reverts an earlier change is very easy; +</li></ol></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="reverting-a-commit"></a>Fixing a mistake with a new commit</h4></div></div></div><p>Creating a new commit that reverts an earlier change is very easy; just pass the <a class="ulink" href="git-revert.html" target="_top">git-revert(1)</a> command a reference to the bad commit; for example, to revert the most recent commit:</p><pre class="literallayout">$ git revert HEAD</pre><p>This will create a new commit which undoes the change in HEAD. You will be given a chance to edit the commit message for the new commit.</p><p>You can also revert an earlier change, for example, the next-to-last:</p><pre class="literallayout">$ git revert HEAD^</pre><p>In this case Git will attempt to undo the old change while leaving intact any changes made since then. If more recent changes overlap with the changes to be reverted, then you will be asked to fix -conflicts manually, just as in the case of <a class="link" href="#resolving-a-merge" title="Resolving a merge">resolving a merge</a>.</p></div><div class="section" title="Fixing a mistake by rewriting history"><div class="titlepage"><div><div><h4 class="title"><a name="fixing-a-mistake-by-rewriting-history"></a>Fixing a mistake by rewriting history</h4></div></div></div><p>If the problematic commit is the most recent commit, and you have not +conflicts manually, just as in the case of <a class="link" href="#resolving-a-merge" title="Resolving a merge">resolving a merge</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="fixing-a-mistake-by-rewriting-history"></a>Fixing a mistake by rewriting history</h4></div></div></div><p>If the problematic commit is the most recent commit, and you have not yet made that commit public, then you may just <a class="link" href="#undoing-a-merge" title="Undoing a merge">destroy it using <code class="literal">git reset</code></a>.</p><p>Alternatively, you can edit the working directory and update the index to fix your @@ -623,14 +623,14 @@ been merged into another branch; use <a class="ulink" href="git-revert.html" target="_top">git-revert(1)</a> instead in that case.</p><p>It is also possible to replace commits further back in the history, but this is an advanced topic to be left for -<a class="link" href="#cleaning-up-history" title="Rewriting history and maintaining patch series">another chapter</a>.</p></div><div class="section" title="Checking out an old version of a file"><div class="titlepage"><div><div><h4 class="title"><a name="checkout-of-path"></a>Checking out an old version of a file</h4></div></div></div><p>In the process of undoing a previous bad change, you may find it +<a class="link" href="#cleaning-up-history" title="Rewriting history and maintaining patch series">another chapter</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="checkout-of-path"></a>Checking out an old version of a file</h4></div></div></div><p>In the process of undoing a previous bad change, you may find it useful to check out an older version of a particular file using <a class="ulink" href="git-checkout.html" target="_top">git-checkout(1)</a>. We’ve used <code class="literal">git checkout</code> before to switch branches, but it has quite different behavior if it is given a path name: the command</p><pre class="literallayout">$ git checkout HEAD^ path/to/file</pre><p>replaces path/to/file by the contents it had in the commit HEAD^, and also updates the index to match. It does not change branches.</p><p>If you just want to look at an old version of the file, without modifying the working directory, you can do that with -<a class="ulink" href="git-show.html" target="_top">git-show(1)</a>:</p><pre class="literallayout">$ git show HEAD^:path/to/file</pre><p>which will display the given version of the file.</p></div><div class="section" title="Temporarily setting aside work in progress"><div class="titlepage"><div><div><h4 class="title"><a name="interrupted-work"></a>Temporarily setting aside work in progress</h4></div></div></div><p>While you are in the middle of working on something complicated, you +<a class="ulink" href="git-show.html" target="_top">git-show(1)</a>:</p><pre class="literallayout">$ git show HEAD^:path/to/file</pre><p>which will display the given version of the file.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="interrupted-work"></a>Temporarily setting aside work in progress</h4></div></div></div><p>While you are in the middle of working on something complicated, you find an unrelated but obvious and trivial bug. You would like to fix it before continuing. You can use <a class="ulink" href="git-stash.html" target="_top">git-stash(1)</a> to save the current state of your work, and after fixing the bug (or, optionally after doing @@ -639,12 +639,12 @@ reset your working tree and the index to match the tip of your current branch. Then you can make your fix as usual.</p><pre class="literallayout">... edit and test ... $ git commit -a -m "blorpl: typofix"</pre><p>After that, you can go back to what you were working on with -<code class="literal">git stash pop</code>:</p><pre class="literallayout">$ git stash pop</pre></div></div><div class="section" title="Ensuring good performance"><div class="titlepage"><div><div><h3 class="title"><a name="ensuring-good-performance"></a>Ensuring good performance</h3></div></div></div><p>On large repositories, Git depends on compression to keep the history +<code class="literal">git stash pop</code>:</p><pre class="literallayout">$ git stash pop</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="ensuring-good-performance"></a>Ensuring good performance</h3></div></div></div><p>On large repositories, Git depends on compression to keep the history information from taking up too much space on disk or in memory. Some Git commands may automatically run <a class="ulink" href="git-gc.html" target="_top">git-gc(1)</a>, so you don’t have to worry about running it manually. However, compressing a large repository may take a while, so you may want to call <code class="literal">gc</code> explicitly -to avoid automatic compression kicking in when it is not convenient.</p></div><div class="section" title="Ensuring reliability"><div class="titlepage"><div><div><h3 class="title"><a name="ensuring-reliability"></a>Ensuring reliability</h3></div></div></div><div class="section" title="Checking the repository for corruption"><div class="titlepage"><div><div><h4 class="title"><a name="checking-for-corruption"></a>Checking the repository for corruption</h4></div></div></div><p>The <a class="ulink" href="git-fsck.html" target="_top">git-fsck(1)</a> command runs a number of self-consistency checks +to avoid automatic compression kicking in when it is not convenient.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="ensuring-reliability"></a>Ensuring reliability</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="checking-for-corruption"></a>Checking the repository for corruption</h4></div></div></div><p>The <a class="ulink" href="git-fsck.html" target="_top">git-fsck(1)</a> command runs a number of self-consistency checks on the repository, and reports on any problems. This may take some time.</p><pre class="literallayout">$ git fsck dangling commit 7281251ddd2a61e38657c827739c57015671a6b3 @@ -659,7 +659,7 @@ that still exist in the repository but are no longer referenced by any of your branches, and can (and will) be removed after a while with <code class="literal">gc</code>. You can run <code class="literal">git fsck --no-dangling</code> to suppress these messages, and still -view real errors.</p></div><div class="section" title="Recovering lost changes"><div class="titlepage"><div><div><h4 class="title"><a name="recovering-lost-changes"></a>Recovering lost changes</h4></div></div></div><div class="section" title="Reflogs"><div class="titlepage"><div><div><h5 class="title"><a name="reflogs"></a>Reflogs</h5></div></div></div><p>Say you modify a branch with <a class="link" href="#fixing-mistakes" title="Fixing mistakes"><code class="literal">git reset --hard</code></a>, +view real errors.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="recovering-lost-changes"></a>Recovering lost changes</h4></div></div></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a name="reflogs"></a>Reflogs</h5></div></div></div><p>Say you modify a branch with <a class="link" href="#fixing-mistakes" title="Fixing mistakes"><code class="literal">git reset --hard</code></a>, and then realize that the branch was the only reference you had to that point in history.</p><p>Fortunately, Git also keeps a log, called a "reflog", of all the previous values of each branch. So in this case you can still find the @@ -677,7 +677,7 @@ section of <a class="ulink" href="gitrevisions.html" target="_top">gitrevisions(7)</a> for details.</p><p>Note that the reflog history is very different from normal Git history. While normal history is shared by every repository that works on the same project, the reflog history is not shared: it tells you only about -how the branches in your local repository have changed over time.</p></div><div class="section" title="Examining dangling objects"><div class="titlepage"><div><div><h5 class="title"><a name="dangling-object-recovery"></a>Examining dangling objects</h5></div></div></div><p>In some situations the reflog may not be able to save you. For example, +how the branches in your local repository have changed over time.</p></div><div class="section"><div class="titlepage"><div><div><h5 class="title"><a name="dangling-object-recovery"></a>Examining dangling objects</h5></div></div></div><p>In some situations the reflog may not be able to save you. For example, suppose you delete a branch, then realize you need the history it contained. The reflog is also deleted; however, if you have not yet pruned the repository, then you may still be able to find the lost @@ -695,7 +695,7 @@ "tip of the line" as being dangling, but there might be a whole deep and complex commit history that was dropped.)</p><p>If you decide you want the history back, you can always create a new reference pointing to it, for example, a new branch:</p><pre class="literallayout">$ git branch recovered-branch 7281251ddd</pre><p>Other types of dangling objects (blobs and trees) are also possible, and -dangling objects can arise in other situations.</p></div></div></div></div><div class="section" title="Sharing development with others"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sharing-development"></a>Sharing development with others</h2></div></div></div><div class="section" title="Getting updates with git pull"><div class="titlepage"><div><div><h3 class="title"><a name="getting-updates-With-git-pull"></a>Getting updates with git pull</h3></div></div></div><p>After you clone a repository and commit a few changes of your own, you +dangling objects can arise in other situations.</p></div></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="sharing-development"></a>Sharing development with others</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="getting-updates-With-git-pull"></a>Getting updates with git pull</h3></div></div></div><p>After you clone a repository and commit a few changes of your own, you may wish to check the original repository for updates and merge them into your own work.</p><p>We have already seen <a class="link" href="#Updating-a-repository-With-git-fetch" title="Updating a repository with git fetch">how to keep remote-tracking branches up to date</a> with <a class="ulink" href="git-fetch.html" target="_top">git-fetch(1)</a>, and how to merge two branches. So you can merge in changes from the @@ -718,7 +718,7 @@ updated to point to the latest commit from the upstream branch.)</p><p>The <code class="literal">git pull</code> command can also be given <code class="literal">.</code> as the "remote" repository, in which case it just merges in a branch from the current repository; so the commands</p><pre class="literallayout">$ git pull . branch -$ git merge branch</pre><p>are roughly equivalent.</p></div><div class="section" title="Submitting patches to a project"><div class="titlepage"><div><div><h3 class="title"><a name="submitting-patches"></a>Submitting patches to a project</h3></div></div></div><p>If you just have a few changes, the simplest way to submit them may +$ git merge branch</pre><p>are roughly equivalent.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="submitting-patches"></a>Submitting patches to a project</h3></div></div></div><p>If you just have a few changes, the simplest way to submit them may just be to send them as patches in email:</p><p>First, use <a class="ulink" href="git-format-patch.html" target="_top">git-format-patch(1)</a>; for example:</p><pre class="literallayout">$ git format-patch origin</pre><p>will produce a numbered series of files in the current directory, one for each patch in the current branch but not in <code class="literal">origin/HEAD</code>.</p><p><code class="literal">git format-patch</code> can include an initial "cover letter". You can insert commentary on individual patches after the three dash line which @@ -729,7 +729,7 @@ hand. However, if you have a lot to send at once, you may prefer to use the <a class="ulink" href="git-send-email.html" target="_top">git-send-email(1)</a> script to automate the process. Consult the mailing list for your project first to determine -their requirements for submitting patches.</p></div><div class="section" title="Importing patches to a project"><div class="titlepage"><div><div><h3 class="title"><a name="importing-patches"></a>Importing patches to a project</h3></div></div></div><p>Git also provides a tool called <a class="ulink" href="git-am.html" target="_top">git-am(1)</a> (am stands for +their requirements for submitting patches.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="importing-patches"></a>Importing patches to a project</h3></div></div></div><p>Git also provides a tool called <a class="ulink" href="git-am.html" target="_top">git-am(1)</a> (am stands for "apply mailbox"), for importing such an emailed series of patches. Just save all of the patch-containing messages, in order, into a single mailbox file, say <code class="literal">patches.mbox</code>, then run</p><pre class="literallayout">$ git am -3 patches.mbox</pre><p>Git will apply each patch in order; if any conflicts are found, it @@ -740,7 +740,7 @@ resolution, instead of creating a new commit, just run</p><pre class="literallayout">$ git am --continue</pre><p>and Git will create the commit for you and continue applying the remaining patches from the mailbox.</p><p>The final result will be a series of commits, one for each patch in the original mailbox, with authorship and commit log message each -taken from the message containing each patch.</p></div><div class="section" title="Public Git repositories"><div class="titlepage"><div><div><h3 class="title"><a name="public-repositories"></a>Public Git repositories</h3></div></div></div><p>Another way to submit changes to a project is to tell the maintainer +taken from the message containing each patch.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="public-repositories"></a>Public Git repositories</h3></div></div></div><p>Another way to submit changes to a project is to tell the maintainer of that project to pull the changes from your repository using <a class="ulink" href="git-pull.html" target="_top">git-pull(1)</a>. In the section "<a class="link" href="#getting-updates-With-git-pull" title="Getting updates with git pull">Getting updates with <code class="literal">git pull</code></a>" we described this as a way to get updates from the "main" repository, but it works just as well in the @@ -765,14 +765,14 @@ | | | | | they push V -their public repo <------------------- their repo</pre><p>We explain how to do this in the following sections.</p><div class="section" title="Setting up a public repository"><div class="titlepage"><div><div><h4 class="title"><a name="setting-up-a-public-repository"></a>Setting up a public repository</h4></div></div></div><p>Assume your personal repository is in the directory <code class="literal">~/proj</code>. We +their public repo <------------------- their repo</pre><p>We explain how to do this in the following sections.</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="setting-up-a-public-repository"></a>Setting up a public repository</h4></div></div></div><p>Assume your personal repository is in the directory <code class="literal">~/proj</code>. We first create a new clone of the repository and tell <code class="literal">git daemon</code> that it is meant to be public:</p><pre class="literallayout">$ git clone --bare ~/proj proj.git $ touch proj.git/git-daemon-export-ok</pre><p>The resulting directory proj.git contains a "bare" git repository—it is just the contents of the <code class="literal">.git</code> directory, without any files checked out around it.</p><p>Next, copy <code class="literal">proj.git</code> to the server where you plan to host the public repository. You can use scp, rsync, or whatever is most -convenient.</p></div><div class="section" title="Exporting a Git repository via the Git protocol"><div class="titlepage"><div><div><h4 class="title"><a name="exporting-via-git"></a>Exporting a Git repository via the Git protocol</h4></div></div></div><p>This is the preferred method.</p><p>If someone else administers the server, they should tell you what +convenient.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="exporting-via-git"></a>Exporting a Git repository via the Git protocol</h4></div></div></div><p>This is the preferred method.</p><p>If someone else administers the server, they should tell you what directory to put the repository in, and what <code class="literal">git://</code> URL it will appear at. You can then skip to the section "<a class="link" href="#pushing-changes-to-a-public-repository" title="Pushing changes to a public repository">Pushing changes to a public repository</a>", below.</p><p>Otherwise, all you need to do is start <a class="ulink" href="git-daemon.html" target="_top">git-daemon(1)</a>; it will @@ -781,7 +781,7 @@ git-daemon-export-ok. Passing some directory paths as <code class="literal">git daemon</code> arguments will further restrict the exports to those paths.</p><p>You can also run <code class="literal">git daemon</code> as an inetd service; see the <a class="ulink" href="git-daemon.html" target="_top">git-daemon(1)</a> man page for details. (See especially the -examples section.)</p></div><div class="section" title="Exporting a git repository via HTTP"><div class="titlepage"><div><div><h4 class="title"><a name="exporting-via-http"></a>Exporting a git repository via HTTP</h4></div></div></div><p>The Git protocol gives better performance and reliability, but on a +examples section.)</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="exporting-via-http"></a>Exporting a git repository via HTTP</h4></div></div></div><p>The Git protocol gives better performance and reliability, but on a host with a web server set up, HTTP exports may be simpler to set up.</p><p>All you need to do is place the newly created bare Git repository in a directory that is exported by the web server, and make some adjustments to give web clients some extra information they need:</p><pre class="literallayout">$ mv proj.git /home/you/public_html/proj.git @@ -792,7 +792,7 @@ clone or pull from that URL, for example with a command line like:</p><pre class="literallayout">$ git clone http://yourserver.com/~you/proj.git</pre><p>(See also <a class="ulink" href="howto/setup-git-server-over-http.html" target="_top">setup-git-server-over-http</a> for a slightly more sophisticated setup using WebDAV which also -allows pushing over HTTP.)</p></div><div class="section" title="Pushing changes to a public repository"><div class="titlepage"><div><div><h4 class="title"><a name="pushing-changes-to-a-public-repository"></a>Pushing changes to a public repository</h4></div></div></div><p>Note that the two techniques outlined above (exporting via +allows pushing over HTTP.)</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="pushing-changes-to-a-public-repository"></a>Pushing changes to a public repository</h4></div></div></div><p>Note that the two techniques outlined above (exporting via <a class="link" href="#exporting-via-http" title="Exporting a git repository via HTTP">http</a> or <a class="link" href="#exporting-via-git" title="Exporting a Git repository via the Git protocol">git</a>) allow other maintainers to fetch your latest changes, but they do not allow write access, which you will need to update the public repository with the @@ -810,11 +810,11 @@ url = yourserver.com:proj.git fetch = +refs/heads/*:refs/remotes/example/*</pre><p>which lets you do the same push with just</p><pre class="literallayout">$ git push public-repo master</pre><p>See the explanations of the <code class="literal">remote.<name>.url</code>, <code class="literal">branch.<name>.remote</code>, and <code class="literal">remote.<name>.push</code> options in -<a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for details.</p></div><div class="section" title="What to do when a push fails"><div class="titlepage"><div><div><h4 class="title"><a name="forcing-push"></a>What to do when a push fails</h4></div></div></div><p>If a push would not result in a <a class="link" href="#fast-forwards" title="Fast-forward merges">fast-forward</a> of the +<a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for details.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="forcing-push"></a>What to do when a push fails</h4></div></div></div><p>If a push would not result in a <a class="link" href="#fast-forwards" title="Fast-forward merges">fast-forward</a> of the remote branch, then it will fail with an error like:</p><pre class="literallayout">error: remote 'refs/heads/master' is not an ancestor of local 'refs/heads/master'. Maybe you are not up-to-date and need to pull first? -error: failed to push to 'ssh://yourserver.com/~you/proj.git'</pre><p>This can happen, for example, if you:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +error: failed to push to 'ssh://yourserver.com/~you/proj.git'</pre><p>This can happen, for example, if you:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> use <code class="literal">git reset --hard</code> to remove already-published commits, or </li><li class="listitem"> use <code class="literal">git commit --amend</code> to replace already-published commits @@ -835,7 +835,7 @@ solution is to retry the push after first updating your work: either by a pull, or by a fetch followed by a rebase; see the <a class="link" href="#setting-up-a-shared-repository" title="Setting up a shared repository">next section</a> and -<a class="ulink" href="gitcvs-migration.html" target="_top">gitcvs-migration(7)</a> for more.</p></div><div class="section" title="Setting up a shared repository"><div class="titlepage"><div><div><h4 class="title"><a name="setting-up-a-shared-repository"></a>Setting up a shared repository</h4></div></div></div><p>Another way to collaborate is by using a model similar to that +<a class="ulink" href="gitcvs-migration.html" target="_top">gitcvs-migration(7)</a> for more.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="setting-up-a-shared-repository"></a>Setting up a shared repository</h4></div></div></div><p>Another way to collaborate is by using a model similar to that commonly used in CVS, where several developers with special rights all push to and pull from a single shared repository. See <a class="ulink" href="gitcvs-migration.html" target="_top">gitcvs-migration(7)</a> for instructions on how to @@ -843,7 +843,7 @@ repositories, this mode of operation is not generally recommended, simply because the mode of collaboration that Git supports—by exchanging patches and pulling from public repositories—has so many -advantages over the central shared repository:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +advantages over the central shared repository:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> Git’s ability to quickly import and merge patches allows a single maintainer to process incoming changes even at very high rates. And when that becomes too much, <code class="literal">git pull</code> provides @@ -860,10 +860,10 @@ The lack of a central group of "committers" means there is less need for formal decisions about who is "in" and who is "out". -</li></ul></div></div><div class="section" title="Allowing web browsing of a repository"><div class="titlepage"><div><div><h4 class="title"><a name="setting-up-gitweb"></a>Allowing web browsing of a repository</h4></div></div></div><p>The gitweb cgi script provides users an easy way to browse your +</li></ul></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="setting-up-gitweb"></a>Allowing web browsing of a repository</h4></div></div></div><p>The gitweb cgi script provides users an easy way to browse your project’s files and history without having to install Git; see the file -gitweb/INSTALL in the Git source tree for instructions on setting it up.</p></div></div><div class="section" title="Examples"><div class="titlepage"><div><div><h3 class="title"><a name="sharing-development-examples"></a>Examples</h3></div></div></div><div class="section" title="Maintaining topic branches for a Linux subsystem maintainer"><div class="titlepage"><div><div><h4 class="title"><a name="maintaining-topic-branches"></a>Maintaining topic branches for a Linux subsystem maintainer</h4></div></div></div><p>This describes how Tony Luck uses Git in his role as maintainer of the -IA64 architecture for the Linux kernel.</p><p>He uses two public branches:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +gitweb/INSTALL in the Git source tree for instructions on setting it up.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="sharing-development-examples"></a>Examples</h3></div></div></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="maintaining-topic-branches"></a>Maintaining topic branches for a Linux subsystem maintainer</h4></div></div></div><p>This describes how Tony Luck uses Git in his role as maintainer of the +IA64 architecture for the Linux kernel.</p><p>He uses two public branches:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> A "test" tree into which patches are initially placed so that they can get some exposure when integrated with other ongoing development. This tree is available to Andrew for pulling into -mm whenever he @@ -1022,10 +1022,10 @@ ;; esac git log origin/master..$branch | git shortlog -done</pre></div></div></div><div class="section" title="Rewriting history and maintaining patch series"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cleaning-up-history"></a>Rewriting history and maintaining patch series</h2></div></div></div><p>Normally commits are only added to a project, never taken away or +done</pre></div></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="cleaning-up-history"></a>Rewriting history and maintaining patch series</h2></div></div></div><p>Normally commits are only added to a project, never taken away or replaced. Git is designed with this assumption, and violating it will cause Git’s merge machinery (for example) to do the wrong thing.</p><p>However, there is a situation in which it can be useful to violate this -assumption.</p><div class="section" title="Creating the perfect patch series"><div class="titlepage"><div><div><h3 class="title"><a name="patch-series"></a>Creating the perfect patch series</h3></div></div></div><p>Suppose you are a contributor to a large project, and you want to add a +assumption.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="patch-series"></a>Creating the perfect patch series</h3></div></div></div><p>Suppose you are a contributor to a large project, and you want to add a complicated feature, and to present it to the other developers in a way that makes it easy for them to read your changes, verify that they are correct, and understand why you made each change.</p><p>If you present all of your changes as a single patch (or commit), they @@ -1044,7 +1044,7 @@ (probably much messier!) development process did. </li></ol></div><p>We will introduce some tools that can help you do this, explain how to use them, and then explain some of the problems that can arise because -you are rewriting history.</p></div><div class="section" title="Keeping a patch series up to date using git rebase"><div class="titlepage"><div><div><h3 class="title"><a name="using-git-rebase"></a>Keeping a patch series up to date using git rebase</h3></div></div></div><p>Suppose that you create a branch <code class="literal">mywork</code> on a remote-tracking branch +you are rewriting history.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="using-git-rebase"></a>Keeping a patch series up to date using git rebase</h3></div></div></div><p>Suppose that you create a branch <code class="literal">mywork</code> on a remote-tracking branch <code class="literal">origin</code>, and create some commits on top of it:</p><pre class="literallayout">$ git checkout -b mywork origin $ vi file.txt $ git commit @@ -1075,16 +1075,16 @@ be easier to use <code class="literal">git rebase -i</code>, which allows you to reorder and squash commits, as well as marking them for individual editing during the rebase. See <a class="xref" href="#interactive-rebase" title="Using interactive rebases">the section called “Using interactive rebases”</a> for details, and -<a class="xref" href="#reordering-patch-series" title="Reordering or selecting from a patch series">the section called “Reordering or selecting from a patch series”</a> for alternatives.</p></div><div class="section" title="Rewriting a single commit"><div class="titlepage"><div><div><h3 class="title"><a name="rewriting-one-commit"></a>Rewriting a single commit</h3></div></div></div><p>We saw in <a class="xref" href="#fixing-a-mistake-by-rewriting-history" title="Fixing a mistake by rewriting history">the section called “Fixing a mistake by rewriting history”</a> that you can replace the +<a class="xref" href="#reordering-patch-series" title="Reordering or selecting from a patch series">the section called “Reordering or selecting from a patch series”</a> for alternatives.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="rewriting-one-commit"></a>Rewriting a single commit</h3></div></div></div><p>We saw in <a class="xref" href="#fixing-a-mistake-by-rewriting-history" title="Fixing a mistake by rewriting history">the section called “Fixing a mistake by rewriting history”</a> that you can replace the most recent commit using</p><pre class="literallayout">$ git commit --amend</pre><p>which will replace the old commit by a new commit incorporating your changes, giving you a chance to edit the old commit message first. This is useful for fixing typos in your last commit, or for adjusting the patch contents of a poorly staged commit.</p><p>If you need to amend commits from deeper in your history, you can -use <a class="link" href="#interactive-rebase" title="Using interactive rebases">interactive rebase’s <code class="literal">edit</code> instruction</a>.</p></div><div class="section" title="Reordering or selecting from a patch series"><div class="titlepage"><div><div><h3 class="title"><a name="reordering-patch-series"></a>Reordering or selecting from a patch series</h3></div></div></div><p>Sometimes you want to edit a commit deeper in your history. One +use <a class="link" href="#interactive-rebase" title="Using interactive rebases">interactive rebase’s <code class="literal">edit</code> instruction</a>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="reordering-patch-series"></a>Reordering or selecting from a patch series</h3></div></div></div><p>Sometimes you want to edit a commit deeper in your history. One approach is to use <code class="literal">git format-patch</code> to create a series of patches and then reset the state to before the patches:</p><pre class="literallayout">$ git format-patch origin $ git reset --hard origin</pre><p>Then modify, reorder, or eliminate patches as needed before applying -them again with <a class="ulink" href="git-am.html" target="_top">git-am(1)</a>:</p><pre class="literallayout">$ git am *.patch</pre></div><div class="section" title="Using interactive rebases"><div class="titlepage"><div><div><h3 class="title"><a name="interactive-rebase"></a>Using interactive rebases</h3></div></div></div><p>You can also edit a patch series with an interactive rebase. This is +them again with <a class="ulink" href="git-am.html" target="_top">git-am(1)</a>:</p><pre class="literallayout">$ git am *.patch</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="interactive-rebase"></a>Using interactive rebases</h3></div></div></div><p>You can also edit a patch series with an interactive rebase. This is the same as <a class="link" href="#reordering-patch-series" title="Reordering or selecting from a patch series">reordering a patch series using <code class="literal">format-patch</code></a>, so use whichever interface you like best.</p><p>Rebase your current HEAD on the last commit you want to retain as-is. For example, if you want to reorder the last 5 commits, use:</p><pre class="literallayout">$ git rebase -i HEAD~5</pre><p>This will open your editor with a list of steps to be taken to perform your rebase.</p><pre class="literallayout">pick deadbee The oneline of this commit @@ -1117,9 +1117,9 @@ things are getting too hairy, you can always bail out with <code class="literal">git rebase --abort</code>. Even after the rebase is complete, you can still recover the original branch by using the <a class="link" href="#reflogs" title="Reflogs">reflog</a>.</p><p>For a more detailed discussion of the procedure and additional tips, -see the "INTERACTIVE MODE" section of <a class="ulink" href="git-rebase.html" target="_top">git-rebase(1)</a>.</p></div><div class="section" title="Other tools"><div class="titlepage"><div><div><h3 class="title"><a name="patch-series-tools"></a>Other tools</h3></div></div></div><p>There are numerous other tools, such as StGit, which exist for the +see the "INTERACTIVE MODE" section of <a class="ulink" href="git-rebase.html" target="_top">git-rebase(1)</a>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="patch-series-tools"></a>Other tools</h3></div></div></div><p>There are numerous other tools, such as StGit, which exist for the purpose of maintaining a patch series. These are outside of the scope of -this manual.</p></div><div class="section" title="Problems with rewriting history"><div class="titlepage"><div><div><h3 class="title"><a name="problems-With-rewriting-history"></a>Problems with rewriting history</h3></div></div></div><p>The primary problem with rewriting the history of a branch has to do +this manual.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="problems-With-rewriting-history"></a>Problems with rewriting history</h3></div></div></div><p>The primary problem with rewriting the history of a branch has to do with merging. Suppose somebody fetches your branch and merges it into their branch, with a result something like this:</p><pre class="literallayout"> o--o--O--o--o--o <-- origin \ \ @@ -1140,7 +1140,7 @@ and it may be useful for others to be able to fetch those branches in order to examine or test them, but they should not attempt to pull such branches into their own work.</p><p>For true distributed development that supports proper merging, -published branches should never be rewritten.</p></div><div class="section" title="Why bisecting merge commits can be harder than bisecting linear history"><div class="titlepage"><div><div><h3 class="title"><a name="bisect-merges"></a>Why bisecting merge commits can be harder than bisecting linear history</h3></div></div></div><p>The <a class="ulink" href="git-bisect.html" target="_top">git-bisect(1)</a> command correctly handles history that +published branches should never be rewritten.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="bisect-merges"></a>Why bisecting merge commits can be harder than bisecting linear history</h3></div></div></div><p>The <a class="ulink" href="git-bisect.html" target="_top">git-bisect(1)</a> command correctly handles history that includes merge commits. However, when the commit that it finds is a merge commit, the user may need to work harder than usual to figure out why that commit introduced a problem.</p><p>Imagine this history:</p><pre class="literallayout"> ---Z---o---X---...---o---A---C---D @@ -1174,7 +1174,7 @@ and understanding why Y* was broken would probably be easier.</p><p>Partly for this reason, many experienced Git users, even when working on an otherwise merge-heavy project, keep the history linear by rebasing against the latest upstream version before -publishing.</p></div></div><div class="section" title="Advanced branch management"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="advanced-branch-management"></a>Advanced branch management</h2></div></div></div><div class="section" title="Fetching individual branches"><div class="titlepage"><div><div><h3 class="title"><a name="fetching-individual-branches"></a>Fetching individual branches</h3></div></div></div><p>Instead of using <a class="ulink" href="git-remote.html" target="_top">git-remote(1)</a>, you can also choose just +publishing.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="advanced-branch-management"></a>Advanced branch management</h2></div></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="fetching-individual-branches"></a>Fetching individual branches</h3></div></div></div><p>Instead of using <a class="ulink" href="git-remote.html" target="_top">git-remote(1)</a>, you can also choose just to update one branch at a time, and to store it locally under an arbitrary name:</p><pre class="literallayout">$ git fetch origin todo:my-todo-work</pre><p>The first argument, <code class="literal">origin</code>, just tells Git to fetch from the repository you originally cloned from. The second argument tells Git @@ -1183,7 +1183,7 @@ branch named <code class="literal">master</code> from the repository at the given URL. If you already have a branch named example-master, it will attempt to <a class="link" href="#fast-forwards" title="Fast-forward merges">fast-forward</a> to the commit given by example.com’s -master branch. In more detail:</p></div><div class="section" title="git fetch and fast-forwards"><div class="titlepage"><div><div><h3 class="title"><a name="fetch-fast-forwards"></a>git fetch and fast-forwards</h3></div></div></div><p>In the previous example, when updating an existing branch, <code class="literal">git fetch</code> +master branch. In more detail:</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="fetch-fast-forwards"></a>git fetch and fast-forwards</h3></div></div></div><p>In the previous example, when updating an existing branch, <code class="literal">git fetch</code> checks to make sure that the most recent commit on the remote branch is a descendant of the most recent commit on your copy of the branch before updating your copy of the branch to point at the new @@ -1198,10 +1198,10 @@ described in the following section. However, note that in the situation above this may mean losing the commits labeled <code class="literal">a</code> and <code class="literal">b</code>, unless you’ve already created a reference of your own pointing to -them.</p></div><div class="section" title="Forcing git fetch to do non-fast-forward updates"><div class="titlepage"><div><div><h3 class="title"><a name="forcing-fetch"></a>Forcing git fetch to do non-fast-forward updates</h3></div></div></div><p>If git fetch fails because the new head of a branch is not a +them.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="forcing-fetch"></a>Forcing git fetch to do non-fast-forward updates</h3></div></div></div><p>If git fetch fails because the new head of a branch is not a descendant of the old head, you may force the update with:</p><pre class="literallayout">$ git fetch git://example.com/proj.git +master:refs/remotes/example/master</pre><p>Note the addition of the <code class="literal">+</code> sign. Alternatively, you can use the <code class="literal">-f</code> flag to force updates of all the fetched branches, as in:</p><pre class="literallayout">$ git fetch -f origin</pre><p>Be aware that commits that the old version of example/master pointed at -may be lost, as we saw in the previous section.</p></div><div class="section" title="Configuring remote-tracking branches"><div class="titlepage"><div><div><h3 class="title"><a name="remote-branch-configuration"></a>Configuring remote-tracking branches</h3></div></div></div><p>We saw above that <code class="literal">origin</code> is just a shortcut to refer to the +may be lost, as we saw in the previous section.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="remote-branch-configuration"></a>Configuring remote-tracking branches</h3></div></div></div><p>We saw above that <code class="literal">origin</code> is just a shortcut to refer to the repository that you originally cloned from. This information is stored in Git configuration variables, which you can see using <a class="ulink" href="git-config.html" target="_top">git-config(1)</a>:</p><pre class="literallayout">$ git config -l @@ -1220,16 +1220,16 @@ $ git fetch example +refs/heads/*:refs/remotes/example/* $ git fetch example</pre><p>See <a class="ulink" href="git-config.html" target="_top">git-config(1)</a> for more details on the configuration options mentioned above and <a class="ulink" href="git-fetch.html" target="_top">git-fetch(1)</a> for more details on -the refspec syntax.</p></div></div><div class="section" title="Git concepts"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="git-concepts"></a>Git concepts</h2></div></div></div><p>Git is built on a small number of simple but powerful ideas. While it +the refspec syntax.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="git-concepts"></a>Git concepts</h2></div></div></div><p>Git is built on a small number of simple but powerful ideas. While it is possible to get things done without understanding them, you will find -Git much more intuitive if you do.</p><p>We start with the most important, the <a class="link" href="#def_object_database">object database</a> and the <a class="link" href="#def_index">index</a>.</p><div class="section" title="The Object Database"><div class="titlepage"><div><div><h3 class="title"><a name="the-object-database"></a>The Object Database</h3></div></div></div><p>We already saw in <a class="xref" href="#understanding-commits" title="Understanding History: Commits">the section called “Understanding History: Commits”</a> that all commits are stored +Git much more intuitive if you do.</p><p>We start with the most important, the <a class="link" href="#def_object_database">object database</a> and the <a class="link" href="#def_index">index</a>.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="the-object-database"></a>The Object Database</h3></div></div></div><p>We already saw in <a class="xref" href="#understanding-commits" title="Understanding History: Commits">the section called “Understanding History: Commits”</a> that all commits are stored under a 40-digit "object name". In fact, all the information needed to represent the history of a project is stored in objects with such names. In each case the name is calculated by taking the SHA-1 hash of the contents of the object. The SHA-1 hash is a cryptographic hash function. What that means to us is that it is impossible to find two different objects with the same name. This has a number of advantages; among -others:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +others:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> Git can quickly determine whether two objects are identical or not, just by comparing names. </li><li class="listitem"> @@ -1241,7 +1241,7 @@ object’s name is still the SHA-1 hash of its contents. </li></ul></div><p>(See <a class="xref" href="#object-details" title="Object storage format">the section called “Object storage format”</a> for the details of the object formatting and SHA-1 calculation.)</p><p>There are four different types of objects: "blob", "tree", "commit", and -"tag".</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +"tag".</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> A <a class="link" href="#def_blob_object">"blob" object</a> is used to store file data. </li><li class="listitem"> A <a class="link" href="#def_tree_object">"tree" object</a> ties one or more @@ -1259,7 +1259,7 @@ used to sign other objects. It contains the object name and type of another object, a symbolic name (of course!) and, optionally, a signature. -</li></ul></div><p>The object types in some more detail:</p><div class="section" title="Commit Object"><div class="titlepage"><div><div><h4 class="title"><a name="commit-object"></a>Commit Object</h4></div></div></div><p>The "commit" object links a physical state of a tree with a description +</li></ul></div><p>The object types in some more detail:</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="commit-object"></a>Commit Object</h4></div></div></div><p>The "commit" object links a physical state of a tree with a description of how we got there and why. Use the <code class="literal">--pretty=raw</code> option to <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> or <a class="ulink" href="git-log.html" target="_top">git-log(1)</a> to examine your favorite commit:</p><pre class="literallayout">$ git show -s --pretty=raw 2be7fcb476 @@ -1271,7 +1271,7 @@ Fix misspelling of 'suppress' in docs - Signed-off-by: Junio C Hamano <gitster@pobox.com></pre><p>As you can see, a commit is defined by:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> + Signed-off-by: Junio C Hamano <gitster@pobox.com></pre><p>As you can see, a commit is defined by:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> a tree: The SHA-1 name of a tree object (as defined below), representing the contents of a directory at a certain point in time. </li><li class="listitem"> @@ -1300,7 +1300,7 @@ file data at changing paths suggests a rename. (See, for example, the <code class="literal">-M</code> option to <a class="ulink" href="git-diff.html" target="_top">git-diff(1)</a>).</p><p>A commit is usually created by <a class="ulink" href="git-commit.html" target="_top">git-commit(1)</a>, which creates a commit whose parent is normally the current HEAD, and whose tree is -taken from the content currently stored in the index.</p></div><div class="section" title="Tree Object"><div class="titlepage"><div><div><h4 class="title"><a name="tree-object"></a>Tree Object</h4></div></div></div><p>The ever-versatile <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> command can also be used to +taken from the content currently stored in the index.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="tree-object"></a>Tree Object</h4></div></div></div><p>The ever-versatile <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> command can also be used to examine tree objects, but <a class="ulink" href="git-ls-tree.html" target="_top">git-ls-tree(1)</a> will give you more details:</p><pre class="literallayout">$ git ls-tree fb3a8bdd0ce 100644 blob 63c918c667fa005ff12ad89437f2fdc80926e21c .gitignore @@ -1322,7 +1322,7 @@ between two related tree objects, since it can ignore any entries with identical object names.</p><p>(Note: in the presence of submodules, trees may also have commits as entries. See <a class="xref" href="#submodules" title="Submodules">the section called “Submodules”</a> for documentation.)</p><p>Note that the files all have mode 644 or 755: Git actually only pays -attention to the executable bit.</p></div><div class="section" title="Blob Object"><div class="titlepage"><div><div><h4 class="title"><a name="blob-object"></a>Blob Object</h4></div></div></div><p>You can use <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> to examine the contents of a blob; take, +attention to the executable bit.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="blob-object"></a>Blob Object</h4></div></div></div><p>You can use <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> to examine the contents of a blob; take, for example, the blob in the entry for <code class="literal">COPYING</code> from the tree above:</p><pre class="literallayout">$ git show 6ff87c4664 Note that the only valid version of the GPL as far as this project @@ -1336,7 +1336,7 @@ renaming a file does not change the object that file is associated with.</p><p>Note that any tree or blob object can be examined using <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> with the <revision>:<path> syntax. This can sometimes be useful for browsing the contents of a tree that is not -currently checked out.</p></div><div class="section" title="Trust"><div class="titlepage"><div><div><h4 class="title"><a name="trust"></a>Trust</h4></div></div></div><p>If you receive the SHA-1 name of a blob from one source, and its contents +currently checked out.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="trust"></a>Trust</h4></div></div></div><p>If you receive the SHA-1 name of a blob from one source, and its contents from another (possibly untrusted) source, you can still trust that those contents are correct as long as the SHA-1 name agrees. This is because the SHA-1 is designed so that it is infeasible to find different contents @@ -1352,7 +1352,7 @@ commits tells others that they can trust the whole history.</p><p>In other words, you can easily validate a whole archive by just sending out a single email that tells the people the name (SHA-1 hash) of the top commit, and digitally sign that email using something -like GPG/PGP.</p><p>To assist in this, Git also provides the tag object…</p></div><div class="section" title="Tag Object"><div class="titlepage"><div><div><h4 class="title"><a name="tag-object"></a>Tag Object</h4></div></div></div><p>A tag object contains an object, object type, tag name, the name of the +like GPG/PGP.</p><p>To assist in this, Git also provides the tag object…</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="tag-object"></a>Tag Object</h4></div></div></div><p>A tag object contains an object, object type, tag name, the name of the person ("tagger") who created the tag, and a message, which may contain a signature, as can be seen using <a class="ulink" href="git-cat-file.html" target="_top">git-cat-file(1)</a>:</p><pre class="literallayout">$ git cat-file tag v1.5.0 object 437b1b20df4b356c9342dac8d38849f24ef44f27 @@ -1370,7 +1370,7 @@ -----END PGP SIGNATURE-----</pre><p>See the <a class="ulink" href="git-tag.html" target="_top">git-tag(1)</a> command to learn how to create and verify tag objects. (Note that <a class="ulink" href="git-tag.html" target="_top">git-tag(1)</a> can also be used to create "lightweight tags", which are not tag objects at all, but just simple -references whose names begin with <code class="literal">refs/tags/</code>).</p></div><div class="section" title="How Git stores objects efficiently: pack files"><div class="titlepage"><div><div><h4 class="title"><a name="pack-files"></a>How Git stores objects efficiently: pack files</h4></div></div></div><p>Newly created objects are initially created in a file named after the +references whose names begin with <code class="literal">refs/tags/</code>).</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="pack-files"></a>How Git stores objects efficiently: pack files</h4></div></div></div><p>Newly created objects are initially created in a file named after the object’s SHA-1 hash (stored in <code class="literal">.git/objects</code>).</p><p>Unfortunately this system becomes inefficient once a project has a lot of objects. Try this on an old project:</p><pre class="literallayout">$ git count-objects 6930 objects, 47620 kilobytes</pre><p>The first number is the number of objects which are kept in @@ -1391,7 +1391,7 @@ <code class="literal">.git/objects</code> directory or by running</p><pre class="literallayout">$ git count-objects 0 objects, 0 kilobytes</pre><p>Although the object files are gone, any commands that refer to those objects will work exactly as they did before.</p><p>The <a class="ulink" href="git-gc.html" target="_top">git-gc(1)</a> command performs packing, pruning, and more for -you, so is normally the only high-level command you need.</p></div><div class="section" title="Dangling objects"><div class="titlepage"><div><div><h4 class="title"><a name="dangling-objects"></a>Dangling objects</h4></div></div></div><p>The <a class="ulink" href="git-fsck.html" target="_top">git-fsck(1)</a> command will sometimes complain about dangling +you, so is normally the only high-level command you need.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="dangling-objects"></a>Dangling objects</h4></div></div></div><p>The <a class="ulink" href="git-fsck.html" target="_top">git-fsck(1)</a> command will sometimes complain about dangling objects. They are not a problem.</p><p>The most common cause of dangling objects is that you’ve rebased a branch, or you have pulled from somebody else who rebased a branch—see <a class="xref" href="#cleaning-up-history" title="Rewriting history and maintaining patch series">the section called “Rewriting history and maintaining patch series”</a>. In that case, the old head of the original @@ -1428,7 +1428,7 @@ repository—it’s kind of like doing a filesystem fsck recovery: you don’t want to do that while the filesystem is mounted. <code class="literal">git prune</code> is designed not to cause any harm in such cases of concurrent -accesses to a repository but you might receive confusing or scary messages.)</p></div><div class="section" title="Recovering from repository corruption"><div class="titlepage"><div><div><h4 class="title"><a name="recovering-from-repository-corruption"></a>Recovering from repository corruption</h4></div></div></div><p>By design, Git treats data trusted to it with caution. However, even in +accesses to a repository but you might receive confusing or scary messages.)</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="recovering-from-repository-corruption"></a>Recovering from repository corruption</h4></div></div></div><p>By design, Git treats data trusted to it with caution. However, even in the absence of bugs in Git itself, it is still possible that hardware or operating system errors could corrupt data.</p><p>The first defense against such problems is backups. You can back up a Git directory using clone, or just using cp, tar, or any other backup @@ -1478,7 +1478,7 @@ to 4b9458b and with the change from 4b9458b to newsha.</p><p>If you’ve been committing small enough changes, you may now have a good shot at reconstructing the contents of the in-between state 4b9458b.</p><p>If you can do that, you can now recreate the missing object with</p><pre class="literallayout">$ git hash-object -w <recreated-file></pre><p>and your repository is good again!</p><p>(Btw, you could have ignored the <code class="literal">fsck</code>, and started with doing a</p><pre class="literallayout">$ git log --raw --all</pre><p>and just looked for the sha of the missing object (4b9458b..) in that whole thing. It’s up to you—Git does <span class="strong"><strong>have</strong></span> a lot of information, it is -just missing one particular blob version.</p></div></div><div class="section" title="The index"><div class="titlepage"><div><div><h3 class="title"><a name="the-index"></a>The index</h3></div></div></div><p>The index is a binary file (generally kept in <code class="literal">.git/index</code>) containing a +just missing one particular blob version.</p></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="the-index"></a>The index</h3></div></div></div><p>The index is a binary file (generally kept in <code class="literal">.git/index</code>) containing a sorted list of path names, each with permissions and the SHA-1 of a blob object; <a class="ulink" href="git-ls-files.html" target="_top">git-ls-files(1)</a> can show you the contents of the index:</p><pre class="literallayout">$ git ls-files --stage 100644 63c918c667fa005ff12ad89437f2fdc80926e21c 0 .gitignore @@ -1515,7 +1515,7 @@ number, and will take on values other than 0 for files with merge conflicts.</p></li></ol></div><p>The index is thus a sort of temporary staging area, which is filled with a tree which you are in the process of working on.</p><p>If you blow the index away entirely, you generally haven’t lost any -information as long as you have the name of the tree that it described.</p></div></div><div class="section" title="Submodules"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="submodules"></a>Submodules</h2></div></div></div><p>Large projects are often composed of smaller, self-contained modules. For +information as long as you have the name of the tree that it described.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="submodules"></a>Submodules</h2></div></div></div><p>Large projects are often composed of smaller, self-contained modules. For example, an embedded Linux distribution’s source tree would include every piece of software in the distribution with some local modifications; a movie player might need to build against a specific, known-working version of a @@ -1561,8 +1561,8 @@ $ for i in a b c d do git submodule add ~/git/$i $i -done</pre><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Do not use local URLs here if you plan to publish your superproject!</p></div><p>See what files <code class="literal">git submodule</code> created:</p><pre class="literallayout">$ ls -a -. .. .git .gitmodules a b c d</pre><p>The <code class="literal">git submodule add <repo> <path></code> command does a couple of things:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +done</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>Do not use local URLs here if you plan to publish your superproject!</p></div><p>See what files <code class="literal">git submodule</code> created:</p><pre class="literallayout">$ ls -a +. .. .git .gitmodules a b c d</pre><p>The <code class="literal">git submodule add <repo> <path></code> command does a couple of things:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> It clones the submodule from <code class="literal"><repo></code> to the given <code class="literal"><path></code> under the current directory and by default checks out the master branch. </li><li class="listitem"> @@ -1579,7 +1579,7 @@ -d266b9873ad50488163457f025db7cdd9683d88b a -e81d457da15309b4fef4249aba9b50187999670d b -c1536a972b9affea0f16e0680ba87332dc059146 c --d96249ff5d57de5de093e6baff9e0aafa5276a74 d</pre><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The commit object names shown above would be different for you, but they +-d96249ff5d57de5de093e6baff9e0aafa5276a74 d</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The commit object names shown above would be different for you, but they should match the HEAD commit object names of your repositories. You can check it by running <code class="literal">git ls-remote ../a</code>.</p></div><p>Pulling down the submodules is a two-step process. First run <code class="literal">git submodule init</code> to add the submodule repository URLs to <code class="literal">.git/config</code>:</p><pre class="literallayout">$ git submodule init</pre><p>Now use <code class="literal">git submodule update</code> to clone the repositories and check out the @@ -1609,7 +1609,7 @@ $ git add a $ git commit -m "Updated submodule a." $ git push</pre><p>You have to run <code class="literal">git submodule update</code> after <code class="literal">git pull</code> if you want to update -submodules, too.</p><div class="section" title="Pitfalls with submodules"><div class="titlepage"><div><div><h3 class="title"><a name="_pitfalls_with_submodules"></a>Pitfalls with submodules</h3></div></div></div><p>Always publish the submodule change before publishing the change to the +submodules, too.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="_pitfalls_with_submodules"></a>Pitfalls with submodules</h3></div></div></div><p>Always publish the submodule change before publishing the change to the superproject that references it. If you forget to publish the submodule change, others won’t be able to clone the repository:</p><pre class="literallayout">$ cd ~/git/super/a $ echo i added another line to this file >> a.txt @@ -1649,18 +1649,18 @@ Submodule path 'a': checked out 'd266b9873ad50488163457f025db7cdd9683d88b' $ cd a $ cat a.txt -module a</pre><div class="note" title="Note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The changes are still visible in the submodule’s reflog.</p></div><p>If you have uncommitted changes in your submodule working tree, <code class="literal">git +module a</pre><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>The changes are still visible in the submodule’s reflog.</p></div><p>If you have uncommitted changes in your submodule working tree, <code class="literal">git submodule update</code> will not overwrite them. Instead, you get the usual -warning about not being able switch from a dirty branch.</p></div></div><div class="section" title="Low-level Git operations"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="low-level-operations"></a>Low-level Git operations</h2></div></div></div><p>Many of the higher-level commands were originally implemented as shell +warning about not being able switch from a dirty branch.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="low-level-operations"></a>Low-level Git operations</h2></div></div></div><p>Many of the higher-level commands were originally implemented as shell scripts using a smaller core of low-level Git commands. These can still be useful when doing unusual things with Git, or just as a way to -understand its inner workings.</p><div class="section" title="Object access and manipulation"><div class="titlepage"><div><div><h3 class="title"><a name="object-manipulation"></a>Object access and manipulation</h3></div></div></div><p>The <a class="ulink" href="git-cat-file.html" target="_top">git-cat-file(1)</a> command can show the contents of any object, +understand its inner workings.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="object-manipulation"></a>Object access and manipulation</h3></div></div></div><p>The <a class="ulink" href="git-cat-file.html" target="_top">git-cat-file(1)</a> command can show the contents of any object, though the higher-level <a class="ulink" href="git-show.html" target="_top">git-show(1)</a> is usually more useful.</p><p>The <a class="ulink" href="git-commit-tree.html" target="_top">git-commit-tree(1)</a> command allows constructing commits with arbitrary parents and trees.</p><p>A tree can be created with <a class="ulink" href="git-write-tree.html" target="_top">git-write-tree(1)</a> and its data can be accessed by <a class="ulink" href="git-ls-tree.html" target="_top">git-ls-tree(1)</a>. Two trees can be compared with <a class="ulink" href="git-diff-tree.html" target="_top">git-diff-tree(1)</a>.</p><p>A tag is created with <a class="ulink" href="git-mktag.html" target="_top">git-mktag(1)</a>, and the signature can be verified by <a class="ulink" href="git-verify-tag.html" target="_top">git-verify-tag(1)</a>, though it is normally simpler to -use <a class="ulink" href="git-tag.html" target="_top">git-tag(1)</a> for both.</p></div><div class="section" title="The Workflow"><div class="titlepage"><div><div><h3 class="title"><a name="the-workflow"></a>The Workflow</h3></div></div></div><p>High-level operations such as <a class="ulink" href="git-commit.html" target="_top">git-commit(1)</a>, +use <a class="ulink" href="git-tag.html" target="_top">git-tag(1)</a> for both.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="the-workflow"></a>The Workflow</h3></div></div></div><p>High-level operations such as <a class="ulink" href="git-commit.html" target="_top">git-commit(1)</a>, <a class="ulink" href="git-checkout.html" target="_top">git-checkout(1)</a> and <a class="ulink" href="git-reset.html" target="_top">git-reset(1)</a> work by moving data between the working tree, the index, and the object database. Git provides low-level operations which perform each of these steps @@ -1668,7 +1668,7 @@ work <span class="strong"><strong>purely</strong></span> on the index file (showing the current state of the index), but most operations move data between the index file and either the database or the working directory. Thus there are four main -combinations:</p><div class="section" title="working directory → index"><div class="titlepage"><div><div><h4 class="title"><a name="working-directory-to-index"></a>working directory → index</h4></div></div></div><p>The <a class="ulink" href="git-update-index.html" target="_top">git-update-index(1)</a> command updates the index with +combinations:</p><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="working-directory-to-index"></a>working directory → index</h4></div></div></div><p>The <a class="ulink" href="git-update-index.html" target="_top">git-update-index(1)</a> command updates the index with information from the working directory. You generally update the index information by just specifying the filename you want to update, like so:</p><pre class="literallayout">$ git update-index filename</pre><p>but to avoid common mistakes with filename globbing etc., the command @@ -1685,16 +1685,16 @@ stat information. It will <span class="emphasis"><em>not</em></span> update the object status itself, and it will only update the fields that are used to quickly test whether an object still matches its old backing store object.</p><p>The previously introduced <a class="ulink" href="git-add.html" target="_top">git-add(1)</a> is just a wrapper for -<a class="ulink" href="git-update-index.html" target="_top">git-update-index(1)</a>.</p></div><div class="section" title="index → object database"><div class="titlepage"><div><div><h4 class="title"><a name="index-to-object-database"></a>index → object database</h4></div></div></div><p>You write your current index file to a "tree" object with the program</p><pre class="literallayout">$ git write-tree</pre><p>that doesn’t come with any options—it will just write out the +<a class="ulink" href="git-update-index.html" target="_top">git-update-index(1)</a>.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="index-to-object-database"></a>index → object database</h4></div></div></div><p>You write your current index file to a "tree" object with the program</p><pre class="literallayout">$ git write-tree</pre><p>that doesn’t come with any options—it will just write out the current index into the set of tree objects that describe that state, and it will return the name of the resulting top-level tree. You can use that tree to re-generate the index at any time by going in the -other direction:</p></div><div class="section" title="object database → index"><div class="titlepage"><div><div><h4 class="title"><a name="object-database-to-index"></a>object database → index</h4></div></div></div><p>You read a "tree" file from the object database, and use that to +other direction:</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="object-database-to-index"></a>object database → index</h4></div></div></div><p>You read a "tree" file from the object database, and use that to populate (and overwrite—don’t do this if your index contains any unsaved state that you might want to restore later!) your current index. Normal operation is just</p><pre class="literallayout">$ git read-tree <SHA-1 of tree></pre><p>and your index file will now be equivalent to the tree that you saved earlier. However, that is only your <span class="emphasis"><em>index</em></span> file: your working -directory contents have not been modified.</p></div><div class="section" title="index → working directory"><div class="titlepage"><div><div><h4 class="title"><a name="index-to-working-directory"></a>index → working directory</h4></div></div></div><p>You update your working directory from the index by "checking out" +directory contents have not been modified.</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="index-to-working-directory"></a>index → working directory</h4></div></div></div><p>You update your working directory from the index by "checking out" files. This is not a very common operation, since normally you’d just keep your files updated, and rather than write to your working directory, you’d tell the index files about the changes in your @@ -1705,7 +1705,7 @@ if you have an old version of the tree already checked out, you will need to use the <code class="literal">-f</code> flag (<span class="emphasis"><em>before</em></span> the <code class="literal">-a</code> flag or the filename) to <span class="emphasis"><em>force</em></span> the checkout.</p><p>Finally, there are a few odds and ends which are not purely moving -from one representation to the other:</p></div><div class="section" title="Tying it all together"><div class="titlepage"><div><div><h4 class="title"><a name="tying-it-all-together"></a>Tying it all together</h4></div></div></div><p>To commit a tree you have instantiated with <code class="literal">git write-tree</code>, you’d +from one representation to the other:</p></div><div class="section"><div class="titlepage"><div><div><h4 class="title"><a name="tying-it-all-together"></a>Tying it all together</h4></div></div></div><p>To commit a tree you have instantiated with <code class="literal">git write-tree</code>, you’d create a "commit" object that refers to that tree and the history behind it—most notably the "parent" commits that preceded it in history.</p><p>Normally a "commit" has one parent: the previous state of the tree @@ -1751,7 +1751,7 @@ +-----------+ | Working | | Directory | - +-----------+</pre></div></div><div class="section" title="Examining the data"><div class="titlepage"><div><div><h3 class="title"><a name="examining-the-data"></a>Examining the data</h3></div></div></div><p>You can examine the data represented in the object database and the + +-----------+</pre></div></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="examining-the-data"></a>Examining the data</h3></div></div></div><p>You can examine the data represented in the object database and the index with various helper tools. For every object, you can use <a class="ulink" href="git-cat-file.html" target="_top">git-cat-file(1)</a> to examine details about the object:</p><pre class="literallayout">$ git cat-file -t <objectname></pre><p>shows the type of the object, and once you have the type (which is @@ -1761,7 +1761,7 @@ readable form.</p><p>It’s especially instructive to look at "commit" objects, since those tend to be small and fairly self-explanatory. In particular, if you follow the convention of having the top commit name in <code class="literal">.git/HEAD</code>, -you can do</p><pre class="literallayout">$ git cat-file commit HEAD</pre><p>to see what the top commit was.</p></div><div class="section" title="Merging multiple trees"><div class="titlepage"><div><div><h3 class="title"><a name="merging-multiple-trees"></a>Merging multiple trees</h3></div></div></div><p>Git can help you perform a three-way merge, which can in turn be +you can do</p><pre class="literallayout">$ git cat-file commit HEAD</pre><p>to see what the top commit was.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="merging-multiple-trees"></a>Merging multiple trees</h3></div></div></div><p>Git can help you perform a three-way merge, which can in turn be used for a many-way merge by repeating the merge procedure several times. The usual situation is that you only do one three-way merge (reconciling two lines of history) and commit the result, but if @@ -1779,7 +1779,7 @@ always do a merge against your last commit (which should thus match what you have in your current index anyway).</p><p>To do the merge, do</p><pre class="literallayout">$ git read-tree -m -u <origtree> <yourtree> <targettree></pre><p>which will do all trivial merge operations for you directly in the index file, and you can just write the result out with -<code class="literal">git write-tree</code>.</p></div><div class="section" title="Merging multiple trees, continued"><div class="titlepage"><div><div><h3 class="title"><a name="merging-multiple-trees-2"></a>Merging multiple trees, continued</h3></div></div></div><p>Sadly, many merges aren’t trivial. If there are files that have +<code class="literal">git write-tree</code>.</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="merging-multiple-trees-2"></a>Merging multiple trees, continued</h3></div></div></div><p>Sadly, many merges aren’t trivial. If there are files that have been added, moved or removed, or if both branches have modified the same file, you will be left with an index tree that contains "merge entries" in it. Such an index tree can <span class="emphasis"><em>NOT</em></span> be written out to a tree @@ -1814,8 +1814,8 @@ to help you understand what conceptually happens under the hood. In practice, nobody, not even Git itself, runs <code class="literal">git cat-file</code> three times for this. There is a <code class="literal">git merge-index</code> program that extracts the -stages to temporary files and calls a "merge" script on it:</p><pre class="literallayout">$ git merge-index git-merge-one-file hello.c</pre><p>and that is what higher level <code class="literal">git merge -s resolve</code> is implemented with.</p></div></div><div class="section" title="Hacking Git"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="hacking-git"></a>Hacking Git</h2></div></div></div><p>This chapter covers internal details of the Git implementation which -probably only Git developers need to understand.</p><div class="section" title="Object storage format"><div class="titlepage"><div><div><h3 class="title"><a name="object-details"></a>Object storage format</h3></div></div></div><p>All objects have a statically determined "type" which identifies the +stages to temporary files and calls a "merge" script on it:</p><pre class="literallayout">$ git merge-index git-merge-one-file hello.c</pre><p>and that is what higher level <code class="literal">git merge -s resolve</code> is implemented with.</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="hacking-git"></a>Hacking Git</h2></div></div></div><p>This chapter covers internal details of the Git implementation which +probably only Git developers need to understand.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="object-details"></a>Object storage format</h3></div></div></div><p>All objects have a statically determined "type" which identifies the format of the object (i.e. how it is used, and how it can refer to other objects). There are currently four different object types: "blob", "tree", "commit", and "tag".</p><p>Regardless of object type, all objects share the following @@ -1834,7 +1834,7 @@ connectivity to other objects verified. This is generally done with the <code class="literal">git fsck</code> program, which generates a full dependency graph of all objects, and verifies their internal consistency (in addition -to just verifying their superficial consistency through the hash).</p></div><div class="section" title="A birds-eye view of Git’s source code"><div class="titlepage"><div><div><h3 class="title"><a name="birdview-on-the-source-code"></a>A birds-eye view of Git’s source code</h3></div></div></div><p>It is not always easy for new developers to find their way through Git’s +to just verifying their superficial consistency through the hash).</p></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="birdview-on-the-source-code"></a>A birds-eye view of Git’s source code</h3></div></div></div><p>It is not always easy for new developers to find their way through Git’s source code. This section gives you a little guidance to show where to start.</p><p>A good place to start is with the contents of the initial commit, with:</p><pre class="literallayout">$ git checkout e83c5163</pre><p>The initial revision lays the foundation for almost everything Git has today, but is small enough to read in one sitting.</p><p>Note that terminology has changed since that revision. For example, the @@ -1877,7 +1877,7 @@ just have a look at the first implementation of <code class="literal">cmd_log()</code>; call <code class="literal">git show v1.3.0~155^2~4</code> and scroll down to that function (note that you no longer need to call <code class="literal">setup_pager()</code> directly).</p><p>Nowadays, <code class="literal">git log</code> is a builtin, which means that it is <span class="emphasis"><em>contained</em></span> in the -command <code class="literal">git</code>. The source side of a builtin is</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +command <code class="literal">git</code>. The source side of a builtin is</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> a function called <code class="literal">cmd_<bla></code>, typically defined in <code class="literal">builtin/<bla.c></code> (note that older versions of Git used to have it in <code class="literal">builtin-<bla>.c</code> instead), and declared in <code class="literal">builtin.h</code>. @@ -1894,7 +1894,7 @@ the organization of Git (after you know the basic concepts).</p><p>So, think about something which you are interested in, say, "how can I access a blob just knowing the object name of it?". The first step is to find a Git command with which you can do it. In this example, it is either -<code class="literal">git show</code> or <code class="literal">git cat-file</code>.</p><p>For the sake of clarity, let’s stay with <code class="literal">git cat-file</code>, because it</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +<code class="literal">git show</code> or <code class="literal">git cat-file</code>.</p><p>For the sake of clarity, let’s stay with <code class="literal">git cat-file</code>, because it</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> is plumbing, and </li><li class="listitem"> was around even in the initial commit (it literally went only through @@ -1908,7 +1908,7 @@ die("Not a valid object name %s", argv[2]);</pre><p>Let’s skip over the obvious details; the only really interesting part here is the call to <code class="literal">get_sha1()</code>. It tries to interpret <code class="literal">argv[2]</code> as an object name, and if it refers to an object which is present in the current -repository, it writes the resulting SHA-1 into the variable <code class="literal">sha1</code>.</p><p>Two things are interesting here:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +repository, it writes the resulting SHA-1 into the variable <code class="literal">sha1</code>.</p><p>Two things are interesting here:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> <code class="literal">get_sha1()</code> returns 0 on <span class="emphasis"><em>success</em></span>. This might surprise some new Git hackers, but there is a long tradition in UNIX to return different negative numbers in case of different errors—and 0 on success. @@ -1932,7 +1932,7 @@ and see that it is in commit 18449ab0… Now just copy this object name, and paste it into the command line</p><pre class="literallayout">$ git show 18449ab0</pre><p>Voila.</p><p>Another example: Find out what to do in order to make some script a builtin:</p><pre class="literallayout">$ git log --no-merges --diff-filter=A builtin/*.c</pre><p>You see, Git is actually the best tool to find out about the source of Git -itself!</p></div></div><div class="section" title="Git Glossary"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="glossary"></a>Git Glossary</h2></div></div></div><div class="variablelist"><dl><dt><span class="term"> +itself!</p></div></div><div class="section"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="glossary"></a>Git Glossary</h2></div></div></div><div class="variablelist"><dl class="variablelist"><dt><span class="term"> <a name="def_alternate_object_database"></a>alternate object database </span></dt><dd> Via the alternates mechanism, a <a class="link" href="#def_repository">repository</a> @@ -2275,7 +2275,7 @@ limit the scope of operations to some subset of the tree or worktree. See the documentation of each command for whether paths are relative to the current directory or toplevel. The -pathspec syntax is as follows:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +pathspec syntax is as follows:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> any path matches itself </li><li class="listitem"> the pathspec up to the last slash represents a @@ -2300,7 +2300,7 @@ parenthesis <code class="literal">(</code>, a comma-separated list of zero or more "magic words", and a close parentheses <code class="literal">)</code>, and the remainder is the pattern to match against the path.</p><p class="simpara">A pathspec with only a colon means "there is no pathspec". This form -should not be combined with other pathspec.</p><div class="variablelist"><dl><dt><span class="term"> +should not be combined with other pathspec.</p><div class="variablelist"><dl class="variablelist"><dt><span class="term"> top </span></dt><dd> The magic word <code class="literal">top</code> (magic signature: <code class="literal">/</code>) makes the pattern @@ -2325,7 +2325,7 @@ "Documentation/git.html" but not "Documentation/ppc/ppc.html" or "tools/perf/Documentation/perf.html". </p><p class="simpara">Two consecutive asterisks ("<code class="literal">**</code>") in patterns matched against -full pathname may have special meaning:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +full pathname may have special meaning:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> A leading "<code class="literal">**</code>" followed by a slash means match in all directories. For example, "<code class="literal">**/foo</code>" matches file or directory "<code class="literal">foo</code>" anywhere, the same as pattern "<code class="literal">foo</code>". "<code class="literal">**/foo/bar</code>" @@ -2570,14 +2570,14 @@ The tree of actual checked out files. The working tree normally contains the contents of the <a class="link" href="#def_HEAD">HEAD</a> commit’s tree, plus any local changes that you have made but not yet committed. -</dd></dl></div></div><div class="appendix" title="A. Git Quick Reference"><h2 class="title" style="clear: both"><a name="git-quick-start"></a>A. Git Quick Reference</h2><p>This is a quick summary of the major commands; the previous chapters -explain how these work in more detail.</p><div class="section" title="Creating a new repository"><div class="titlepage"><div><div><h3 class="title"><a name="quick-creating-a-new-repository"></a>Creating a new repository</h3></div></div></div><p>From a tarball:</p><pre class="literallayout">$ tar xzf project.tar.gz +</dd></dl></div></div><div class="appendix"><h2 class="title" style="clear: both"><a name="git-quick-start"></a>A. Git Quick Reference</h2><p>This is a quick summary of the major commands; the previous chapters +explain how these work in more detail.</p><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="quick-creating-a-new-repository"></a>Creating a new repository</h3></div></div></div><p>From a tarball:</p><pre class="literallayout">$ tar xzf project.tar.gz $ cd project $ git init Initialized empty Git repository in .git/ $ git add . $ git commit</pre><p>From a remote repository:</p><pre class="literallayout">$ git clone git://example.com/pub/project.git -$ cd project</pre></div><div class="section" title="Managing branches"><div class="titlepage"><div><div><h3 class="title"><a name="managing-branches"></a>Managing branches</h3></div></div></div><pre class="literallayout">$ git branch # list all local branches in this repo +$ cd project</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="managing-branches"></a>Managing branches</h3></div></div></div><pre class="literallayout">$ git branch # list all local branches in this repo $ git checkout test # switch working directory to branch "test" $ git branch new # create branch "new" starting at current HEAD $ git branch -d new # delete branch "new"</pre><p>Instead of basing a new branch on current HEAD (the default), use:</p><pre class="literallayout">$ git branch new test # branch named "test" @@ -2603,7 +2603,7 @@ next ... $ git fetch example # update branches from example -$ git branch -r # list all remote branches</pre></div><div class="section" title="Exploring history"><div class="titlepage"><div><div><h3 class="title"><a name="exploring-history"></a>Exploring history</h3></div></div></div><pre class="literallayout">$ gitk # visualize and browse history +$ git branch -r # list all remote branches</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="exploring-history"></a>Exploring history</h3></div></div></div><pre class="literallayout">$ gitk # visualize and browse history $ git log # list all commits $ git log src/ # ...modifying src/ $ git log v2.6.15..v2.6.16 # ...in v2.6.16, not in v2.6.15 @@ -2625,7 +2625,7 @@ # test here, then: $ git bisect good # if this revision is good, or $ git bisect bad # if this revision is bad. - # repeat until done.</pre></div><div class="section" title="Making changes"><div class="titlepage"><div><div><h3 class="title"><a name="making-changes"></a>Making changes</h3></div></div></div><p>Make sure Git knows who to blame:</p><pre class="literallayout">$ cat >>~/.gitconfig <<\EOF + # repeat until done.</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="making-changes"></a>Making changes</h3></div></div></div><p>Make sure Git knows who to blame:</p><pre class="literallayout">$ cat >>~/.gitconfig <<\EOF [user] name = Your Name Comes Here email = you@yourdomain.example.com @@ -2634,16 +2634,16 @@ $ git add b.txt # new file $ git rm c.txt # old file $ git commit</pre><p>Or, prepare and create the commit in one step:</p><pre class="literallayout">$ git commit d.txt # use latest content only of d.txt -$ git commit -a # use latest content of all tracked files</pre></div><div class="section" title="Merging"><div class="titlepage"><div><div><h3 class="title"><a name="merging"></a>Merging</h3></div></div></div><pre class="literallayout">$ git merge test # merge branch "test" into the current branch +$ git commit -a # use latest content of all tracked files</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="merging"></a>Merging</h3></div></div></div><pre class="literallayout">$ git merge test # merge branch "test" into the current branch $ git pull git://example.com/project.git master # fetch and merge in remote branch -$ git pull . test # equivalent to git merge test</pre></div><div class="section" title="Sharing your changes"><div class="titlepage"><div><div><h3 class="title"><a name="sharing-your-changes"></a>Sharing your changes</h3></div></div></div><p>Importing or exporting patches:</p><pre class="literallayout">$ git format-patch origin..HEAD # format a patch for each commit +$ git pull . test # equivalent to git merge test</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="sharing-your-changes"></a>Sharing your changes</h3></div></div></div><p>Importing or exporting patches:</p><pre class="literallayout">$ git format-patch origin..HEAD # format a patch for each commit # in HEAD but not in origin $ git am mbox # import patches from the mailbox "mbox"</pre><p>Fetch a branch in a different Git repository, then merge into the current branch:</p><pre class="literallayout">$ git pull git://example.com/project.git theirbranch</pre><p>Store the fetched branch into a local branch before merging into the current branch:</p><pre class="literallayout">$ git pull git://example.com/project.git theirbranch:mybranch</pre><p>After creating commits on a local branch, update the remote branch with your commits:</p><pre class="literallayout">$ git push ssh://example.com/project.git mybranch:theirbranch</pre><p>When remote and local branch are both named "test":</p><pre class="literallayout">$ git push ssh://example.com/project.git test</pre><p>Shortcut version for a frequently used remote repository:</p><pre class="literallayout">$ git remote add example ssh://example.com/project.git -$ git push example test</pre></div><div class="section" title="Repository maintenance"><div class="titlepage"><div><div><h3 class="title"><a name="repository-maintenance"></a>Repository maintenance</h3></div></div></div><p>Check for corruption:</p><pre class="literallayout">$ git fsck</pre><p>Recompress, remove unused cruft:</p><pre class="literallayout">$ git gc</pre></div></div><div class="appendix" title="B. Notes and todo list for this manual"><h2 class="title" style="clear: both"><a name="todo"></a>B. Notes and todo list for this manual</h2><p>This is a work in progress.</p><p>The basic requirements:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +$ git push example test</pre></div><div class="section"><div class="titlepage"><div><div><h3 class="title"><a name="repository-maintenance"></a>Repository maintenance</h3></div></div></div><p>Check for corruption:</p><pre class="literallayout">$ git fsck</pre><p>Recompress, remove unused cruft:</p><pre class="literallayout">$ git gc</pre></div></div><div class="appendix"><h2 class="title" style="clear: both"><a name="todo"></a>B. Notes and todo list for this manual</h2><p>This is a work in progress.</p><p>The basic requirements:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> It must be readable in order, from beginning to end, by someone intelligent with a basic grasp of the UNIX command line, but without any special knowledge of Git. If necessary, any other prerequisites @@ -2655,7 +2655,7 @@ than "the <code class="literal">git am</code> command" </li></ul></div><p>Think about how to create a clear chapter dependency graph that will allow people to get to important topics without necessarily reading -everything in between.</p><p>Scan <code class="literal">Documentation/</code> for other stuff left out; in particular:</p><div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"> +everything in between.</p><p>Scan <code class="literal">Documentation/</code> for other stuff left out; in particular:</p><div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"> howto’s </li><li class="listitem"> some of <code class="literal">technical/</code>?